Random game
Random demo
Random demo
Entry name:
 Cassette Boot Manager Ver. 2.0 
Publisher/Developer:

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

    Cassette utilities
  • Year:

    1982
  • Code:

    H. E. Striepe
  • Media format:

    Diskette, Tape
  • Programming language:

    Atari BASIC
Cassette Boot Manager Ver. 2.0 Cassette Boot Manager Ver. 2.0
Listing 1
10REMCASSETTEBOOTMANAGERVER.2.0
20REM
25REMBYH.E.STRIEPE13JUL82
30REM
35REMTHISPROGRAMISINTHEPUBLIC
40REMDOMAIN,FURTHERDISTRIBUTION
42REMMUSTCONTAINTHISREFERENCE!
45REM
46REMWRITTENFORANTIC,
47REMTHEATARIRESOURCE,
48REMANDFRIENDS
49REM
50REM
51REM>>>THISISPARTA<<<
52REM
55REMNOTE:THISPROGRAMCONTAINS
60REMRELOCATABLESUBROUTINESTHAT
65REMCANBEUSEDFORGENERALI/O
70REMFROMBASICANDBASICA+
75REM(THELATTERALREADYHASA
80REMFASTLOADROUTINE).
81REMTHESESUBROUTINESCOULDALSO
82REMBESTOREDINSTRINGS.
83REM
85REM
86REMTOENHANCESPACEUTILIZATION,
87REMTHISPROGRAMISINTWOPARTS.
88REMTHISPARTAISFORSET-UPOF
90REMSUBROUTINES,PARTBDOESTHE
91REMACTUALWORK;OTHERSCHEMESARE
92REMPOSSIBLE.FORCASS.VERSIONS,
93REMPARTBSOULDBESAVEDWITH
94REM'SAVE"C:".COMPATIBILITYWITH
95REMBASICA+HASBEENRETAINED.
96REM
99REM
200REMTHISROUTINESETSUPSCREEN
210REM
220GRAPHICS0:POKE710,146:POKE712,144:POKE752,1:?:?"CASSETTEBOOTMANAGERVERS.2.0"
230?"byH.E.STRIEPE1982":?
240?:?:?:?:?"Thisprogrampermitstheduplicationofprivatelyownedsingle-stage"
250?"cassetteboottapestocassetteor":?"disk.":?:?
260?"DONOTUSETOILLEGALLYCOPYCOPYRIGHTEDMATERIAL!!!"
270POKE703,4:REMOPENUPBOTTOMWINDOW
299REM
300REMNOWWELOADSUBROUTINES,AND
301REMCALLTHECOMPANIONPROGRAM
302REM
305?CHR$(125):?"LOADINGMACHINELANGAGEROUTINES..."
310GOSUB1010:GOSUB2010
320?CHR$(125):?"LOADINGMAINPROGRAM..."
325REMPOKE764,12forCASSETTEvers.
330RUN"D:CBOOTMGB":REM<<<<CHANGETO'RUN"C:"'FORCASSETTEVERSIONNOTE:CBOOTMGBmusthavebeensaved
340REMwith'SAVE"C:"'
999REM
1000REMTHISSUBROUTINEADDSDISK
1002REMHANDLINGROUTINEEXPECTING
1003REMDISKDEV#,DISKCOMMAND
1004REM(ASC("w")ORASC("R)),start
1005REMSECTOR,SECTCOUNT,BUFFERADD
1006REMASUSRCALLARGUMENTS
1007REM
1010SUBSTART=1600:SUBEND=1682
1020FORX=SUBSTARTTOSUBEND
1030READY:POKEX,Y:NEXTX
1040DATA32,68,218,104,201,5,208,74
1050DATA104,104,141,1,3,104,104,141
1060DATA2,3,104,141,11,3,104,141
1070DATA10,3,104,133,204,104,133,203
1080DATA104,141,5,3,104,141,4,3
1090DATA32,83,228,48,35,173,4,3
1100DATA24,105,128,141,4,3,173,5
1110DATA3,105,0,141,5,3,238,10
1120DATA3,200,3,238,11,3,198,203
1130DATA208,222,198,204,16,218,160,1
1140DATA132,212,96
1150RETURN
1999REM
2000REMBINARYPUT/GETSUBROUTINE
2002REMLOADROUTINEEXPECTINGI/O
2003REMCHAN.,COMMAND(7-GET,11-PUT),
2004REMBUFFADD,BUFFLENGTH
2005REMASUSRCALLARGUMENTS
2006REMGETCOMMANDRETURNSFILE
2007REMLENGTHIN$CB&$CC(203/204)
2008REM
2010SUBSTART=1700:SUBEND=1751
2020FORX=SUBSTARTTOSUBEND
2030READY:POKEX,Y:NEXTX
2040DATA32,68,218,104,201,4,208,43
2050DATA104,104,10,10,10,10,170,104
2060DATA104,157,66,3,104,157,69,3
2070DATA104,157,68,3,104,157,73,3
2080DATA104,157,72,3,32,86,228,132
2090DATA212,189,72,3,133,203,189,73
2100DATA3,133,204,96
2110RETURN
3000REMTHISISPARTBOFCBOOTMGR
3010REM
3020REMVERS.2.0
3030REMBYH.E.STRIEPE1982
3040REM
3100REMINITIALIZATION
3110REM
3115DIMA$(10)
3120BASTOP=PEEK(144)+256*PEEK(145)
3130MEMTOP=PEEK(741)+256*PEEK(742)
3140BUF=BASTOP+100
3150BUFLEN=MEMTOP-BUF
3160GT=7:PT=11:WT=ASC("W"):RD=ASC("R")
3200?CHR$(125);"INSERTBOOTSOURCECASSETTEINTO":?"CASSETTEDRIVE,PRESS,":?"ANDPRESS"
3205REMTYPE'PLAY'AND'RETURN'INPREVIOUSLINEININVERSEVIDEO(ATARILOGOKEY)
3210OPEN#1,4,128,"C:":REMSHORTIRQ
3220?CHR$(125);"LOADINGCASSETTEBOOTFILE..."
3230ERROR=USR(1700,1,GT,BUF,BUFLEN)
3240CLOSE#1:LINE=3200:GOSUB4050
3250IFERROR=1THEN?CHR$(125);CHR$(253);"INSUFFICIENTBUFFERSPACE...":FORT=1TO250:NEXTT:RUN
3260FILELEN=PEEK(203)+256*PEEK(204)
3270REM
3280REMTHISROUTINEASKSFOR
3290REMINPUTONWHETHERCASSETTEOR
3300REMDISKBOOTISDESIRED
3310REM
3320?CHR$(125);"DOYOUWANTACOPYONCASSETTE":?"ORDISK(C/D)";:INPUTA$
3330IFA$(1,1)="C"THEN3740
3340IFA$(1,1)="D"THEN3550
3350?CHR$(253);"INCORRECTRESPONSE..."
3360GOTO3320
3500REM
3510REMTHISROUTINECREATESA
3520REMBOOTDISK
3530REM
3550?CHR$(125);"INSERTAFORMATTEDDISKINTO"
3560?"DRIVE#1,PRESS":REMTTYPE'RETURN'ININVERSEVIDEO
3570DRIVE=1:STRTSECT=1:SECTCNT=INT(FILELEN/128)+1
3580OPEN#2,4,0,"K:":GET#2,A:A$=CHR$(A):CLOSE#2:?A$
3590?CHR$(125);"WRITTINGBOOTDISK..."
3600ERROR=USR(1600,DRIVE,WT,STRTSECT,SECTCNT,BUF)
3610LINE=3550:GOSUB4050
3620?CHR$(125);"DOYOUWANTANOTHER"
3630?"COPY(Y/N)";:INPUTA$
3640IFA$(1,1)="Y"THEN3320
3650RUN
3700REM
3710REMTHISROUTINECREATESANOTHER
3720REMBOOTCASSETTETAPE
3730REM
3740?CHR$(125);"INSERTDESTINATIONCASSETTE,PRESS":?"AND,ANDPRESS";
3745REMTYPE'RECORD','PLAY',AND'RETURN'INPREVIOUSLINEININVERSEVIDEO
3750OPEN#1,8,128,"C:"
3760?CHR$(125);"WRITTINGBOOTFILE..."
3770ERROR=USR(1700,1,PT,BUF,FILELEN)
3780CLOSE#1:LINE=3740:GOSUB4050
3790?CHR$(125);"DOYOUWANTANOTHERCOPY(Y/N)";:INPUTA$
3800IFA$(1,1)="Y"THEN3320
3810RUN
4000REM
4010REMTHISROUTINEEXAMINESTHE
4020REMERRORVALUERETURNEDFROMTHE
4030REMUSRFUNCTION
4040REM
4050IFERROR=1ORERROR=136THENRETURN:REMNORMALI/OEXITORENDOFFILE
4060IFERROR=0THEN4090
4070?CHR$(125);CHR$(253);"I/OERROR,CHECKPERIPHERALS":?"ANDTRYAGAIN..."
4080FORT=1TO300:NEXTT:POP:GOTOLINE
4090GRAPHICS0:POSITION2,14:?CHR$(253);">>>>PROGRAMERROR,REVIEWUSR<<<<ARGUMENTS...":STOP	
Listing 2
3000REMTHISISPARTBOFCBOOTMGR
3010REM
3020REMVERS.2.0
3030REMBYH.E.STRIEPE1982
3040REM
3100REMINITIALIZATION
3110REM
3115DIMA$(10)
3120BASTOP=PEEK(144)+256*PEEK(145)
3130MEMTOP=PEEK(741)+256*PEEK(742)
3140BUF=BASTOP+100
3150BUFLEN=MEMTOP-BUF
3160GT=7:PT=11:WT=ASC("W"):RD=ASC("R")
3200?CHR$(125);"INSERTBOOTSOURCECASSETTEINTO":?"CASSETTEDRIVE,PRESS,":?"ANDPRESS"
3205REMTYPE'PLAY'AND'RETURN'INPREVIOUSLINEININVERSEVIDEO(ATARILOGOKEY)
3210OPEN#1,4,128,"C:":REMSHORTIRQ
3220?CHR$(125);"LOADINGCASSETTEBOOTFILE..."
3230ERROR=USR(1700,1,GT,BUF,BUFLEN)
3240CLOSE#1:LINE=3200:GOSUB4050
3250IFERROR=1THEN?CHR$(125);CHR$(253);"INSUFFICIENTBUFFERSPACE...":FORT=1TO250:NEXTT:RUN
3260FILELEN=PEEK(203)+256*PEEK(204)
3270REM
3280REMTHISROUTINEASKSFOR
3290REMINPUTONWHETHERCASSETTEOR
3300REMDISKBOOTISDESIRED
3310REM
3320?CHR$(125);"DOYOUWANTACOPYONCASSETTE":?"ORDISK(C/D)";:INPUTA$
3330IFA$(1,1)="C"THEN3740
3340IFA$(1,1)="D"THEN3550
3350?CHR$(253);"INCORRECTRESPONSE..."
3360GOTO3320
3500REM
3510REMTHISROUTINECREATESA
3520REMBOOTDISK
3530REM
3550?CHR$(125);"INSERTAFORMATTEDDISKINTO"
3560?"DRIVE#1,PRESS":REMTTYPE'RETURN'ININVERSEVIDEO
3570DRIVE=1:STRTSECT=1:SECTCNT=INT(FILELEN/128)+1
3580OPEN#2,4,0,"K:":GET#2,A:A$=CHR$(A):CLOSE#2:?A$
3590?CHR$(125);"WRITTINGBOOTDISK..."
3600ERROR=USR(1600,DRIVE,WT,STRTSECT,SECTCNT,BUF)
3610LINE=3550:GOSUB4050
3620?CHR$(125);"DOYOUWANTANOTHER"
3630?"COPY(Y/N)";:INPUTA$
3640IFA$(1,1)="Y"THEN3320
3650RUN
3700REM
3710REMTHISROUTINECREATESANOTHER
3720REMBOOTCASSETTETAPE
3730REM
3740?CHR$(125);"INSERTDESTINATIONCASSETTE,PRESS":?"AND,ANDPRESS";
3745REMTYPE'RECORD','PLAY',AND'RETURN'INPREVIOUSLINEININVERSEVIDEO
3750OPEN#1,8,128,"C:"
3760?CHR$(125);"WRITTINGBOOTFILE..."
3770ERROR=USR(1700,1,PT,BUF,FILELEN)
3780CLOSE#1:LINE=3740:GOSUB4050
3790?CHR$(125);"DOYOUWANTANOTHERCOPY(Y/N)";:INPUTA$
3800IFA$(1,1)="Y"THEN3320
3810RUN
4000REM
4010REMTHISROUTINEEXAMINESTHE
4020REMERRORVALUERETURNEDFROMTHE
4030REMUSRFUNCTION
4040REM
4050IFERROR=1ORERROR=136THENRETURN:REMNORMALI/OEXITORENDOFFILE
4060IFERROR=0THEN4090
4070?CHR$(125);CHR$(253);"I/OERROR,CHECKPERIPHERALS":?"ANDTRYAGAIN..."
4080FORT=1TO300:NEXTT:POP:GOTOLINE
4090GRAPHICS0:POSITION2,14:?CHR$(253);">>>>PROGRAMERROR,REVIEWUSR<<<<ARGUMENTS...":STOP	

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!