UVNeSUBSTARSUBENBASTOAMEMTOBUBUFLEGPWRERROLINFILELEDRIVSTRTSECSECTCN  $$CASSETTE BOOT MANAGER VER. 2.0BY H.E.STRIEPE 13JUL82###THIS PROGRAM IS IN THE PUBLIC(""DOMAIN, FURTHER DISTRIBUTION*##MUST CONTAIN THIS REFERENCE !-.WRITTEN FOR ANTIC,/THE ATARI RESOURCE,0AND FRIENDS123>>> THIS IS PART A <<<47""NOTE: THIS PROGRAM CONTAINS<""RELOCATABLE SUBROUTINES THATA!!CAN BE USED FOR GENERAL I/OFFROM BASIC AND BASIC A+K ( THE LATTER ALREADY HAS APFAST LOAD ROUTINE ).Q""THESE SUBROUTINES COULD ALSORBE STORED IN STRINGS.SUV##TO ENHANCE SPACE UTILIZATION,W##THIS PROGRAM IS IN TWO PARTS.X""THIS PART A IS FOR SET-UP OFZ""SUBROUTINES, PART B DOES THE[$$ACTUAL WORK; OTHER SCHEMES ARE\##POSSIBLE. FOR CASS. VERSIONS,] PART B SOULD BE SAVED WITH^$$'SAVE "C:". COMPATIBILITY WITH_!!BASIC A+ HAS BEEN RETAINED.`c!!THIS ROUTINE SETS UP SCREENn +AAF1AADCAR@F(n(#CASSETTE BOOT MANAGER VERS.2.0(by H.E.STRIEPE 1982(X( ( ((X(DThis program permits the duplication of privately owned single-stage:*("cassette boot tapes to cassette or4(disk.7(:(PP(H DO NOT USE TO ILLEGALLY COPY COPYRIGHTED MATERIAL !!! -A@-OPEN UP BOTTOM WINDOW+,""NOW WE LOAD SUBROUTINES, AND- CALL THE COMPANION PROGRAM.18(>:A%,8(#LOADING MACHINE LANGAGE ROUTINES...6 A A @,(>:A%,,(LOADING MAIN PROGRAM...E$$POKE 764,12 for CASSETTE vers.Jh% D:CBOOTMGBh<<<< CHANGE TO 'RUN "C:" ' FOR CASSETTE VERSION NOTE: CBOOTMGB must have been savedTwith ' SAVE "C:" 'THIS SUBROUTINE ADDS DISK HANDLING ROUTINE EXPECTINGDISK DEV#,DISK COMMAND!!(ASC("w") OR ASC("R)),start""SECTOR,SECT COUNT,BUFFER ADDAS USR CALL ARGUMENTS6-A6-A -"   32,68,218,104,201,5,208,74!!104,104,141,1,3,104,104,141$2,3,104,141,11,3,104,141.""10,3,104,133,204,104,133,2038104,141,5,3,104,141,4,3B32,83,228,48,35,173,4,3L24,105,128,141,4,3,173,5V3,105,0,141,5,3,238,10`3,200,3,238,11,3,198,203j""208,222,198,204,16,218,160,1t132,212,96~$BINARY PUT/GET SUBROUTINE LOAD ROUTINE EXPECTING I/O""CHAN.,COMMAND(7-GET,11-PUT),BUFF ADD,BUFF LENGTHAS USR CALL ARGUMENTSGET COMMAND RETURNS FILE##LENGTH IN $CB & $CC (203/204)6-A6-AQ -"   32,68,218,104,201,4,208,43!!104,104,10,10,10,10,170,104 104,157,66,3,104,157,69,3104,157,68,3,104,157,73,3  104,157,72,3,32,86,228,132*!!212,189,72,3,133,203,189,7343,133,204,96>$ !!THIS IS PART B OF C BOOTMGR  VERS.2.0 BY H.E. STRIEPE 1982  INITIALIZATION& + ;@,0 %%6-F:AD,%AV$F:AE,: %%6-F:AA,%AV$F:AB,D 6-%AN 6-&X 16-@6-@&6-@:W,16-@:R, h3(>:A%, INSERT BOOT SOURCE CASSETTE INTOR(CASSETTE DRIVE,PRESS ,h(AND PRESS  QQTYPE 'PLAY' AND 'RETURN' IN PREVIOUS LINE IN INVERSE VIDEO (ATARI LOGO KEY) /#@@A(C:/SHORT IRQ 00(>:A%,LOADING CASSETTE BOOT FILE... 6-?:A<@<<<, $@6-A2$ A@P a"@F(>:A%,>:AS,INSUFFICIENT BUFFER SPACE...Z-@AP^ a% %%6-F:A,%AV$F:A,  THIS ROUTINE ASKS FOR ""INPUT ON WHETHER CASSETTE OR DISK BOOT IS DESIRED  H1(>:A%,DO YOU WANT A COPY ON CASSETTED( OR DISK (C/D)H $$7@<@,4CA7@ $$7@<@,4DA5P (((>:AS,INCORRECT RESPONSE... A3   THIS ROUTINE CREATES A BOOT DISK  //(>:A%,INSERT A FORMATTED DISK INTO A(DRIVE #1, PRESS ATTYPE 'RETURN' IN INVERSE VIDEO 46-@6-@46-P:'A(,%@ H#@@K:0)@96.>:,D@H((((>:A%,WRITTING BOOT DISK...6-?:A<<<<<,6-A5P A@P$&&(>:A%,DO YOU WANT ANOTHER.( COPY (Y/N)8$$7@<@,4YA3 B%t~""THIS ROUTINE CREATES ANOTHERBOOT CASSETTE TAPE[4(>:A%,!INSERT DESTINATION CASSETTE,PRESS[(! AND , ANDPRESS KKTYPE 'RECORD', 'PLAY', AND 'RETURN' IN PREVIOUS LINE IN INVERSE VIDEO##@@A(C:(((>:A%,WRITTING BOOT FILE... 6-?:A<@<<<,$@6-A7@$ A@P62(>:A%,DO YOU WANT ANOTHER COPY (Y/N)6$$7@<@,4YA3 %THIS ROUTINE EXAMINES THE##ERROR VALUE RETURNED FROM THEUSR FUNCTION="@)"A6$=NORMAL I/O EXIT OR END OF FILE"A@O:(>:A%,>:AS,I/O ERROR, CHECK PERIPHERALSO(AND TRY AGAIN..."-@A '" p +-@@m(>:AS,>>>>> PROGRAM ERROR, REVIEW USR <<<< ARGUMENTS...p&D1:CBOOTMGR.BAS