& ******************************K * AUTOBOOT MANAGER *p * BY VICTOR SINGLETON *( * 20 JUNE 1986 *2 ******************************< * STRINGTHING128 BY JEFF MAY AFTER JIM BUTTERFIELD *0F * 1581 COMPATIBILITY ADDED 3/15/87 BY KEVIN HISEL *rZ:Z$"*****************":Z$Z$Z$Z$Z$Z$:Z$Z$Z$Z$:X(1)_X(215):X0CS40:&:CS80:%dJ5136:CK0:130:nA:A1:՗J,A:JJ1:CKCKA:x CK7437" 160,0,140,0,20,166,254,32,198,255,32,228,255,201,13,240d 32,72,169,255,133,252,169,253,133,253,169,252,141,185,2,104162,1,32,119,255,200,192,0,240,7,140,0,20,165,144,240,217,76,204,255,0,-1 :5,2:NU$(0):CS400:0,7:4,1:5:6,7 -------------- - TITLE PAGE -% --------------"";(CS16)2);" ":(CS2)2);"BY":(CS16)2);"ICTOR INGLETON"(CS36)2);"ASED ON PROGRAMS BY:":(CS11)2);"EVIN ISEL":(CS10)2);"RED OWEN" (CS3)2);"AND":(CS10)2);"ERRY YAN"P (CS22)2);"ISK DEVICE NUMBER 8 ";:"";DVm DV8DV15"";:220 (CS6)2)"!":(CS16)2)"* NSERT ISK *" (CS24)2);"ÒONTINUE OR ɒNSTRUCTIONS" R$:R$"I"2500:200!R$"C"240!! ---------------------=! - CHECK BOOT SECTOR -Y! ---------------------w!"15,DV,15,"I0":2040:AF0!,8,DV,8,"$0:":#8,A$:8:(A$)65TR18!6(A$)68TR40: 1581!@TR02070:"OT A VALID DISK DEVICE":2100,"J8,DV,8,"#":2040:B$"":15,"U1";8;0;1;0:15,"B-P";8;0K"T I02:#8,A$:B$B$A$:I\"^B$"CBM""h: 2070:AF1:"HIS DISK HAS A BOOT SECTOR ALREADY!":"O YOU WISH TO CONTINUE N";R$"r: R$"N" 2100"|: #: TR1815,"U1";8;0;TR;0:15,"B-P";8;5@#: TR4015,"U1";8;0;TR;1:15,"B-P";8;17^#: #8,BA$:BA(BA$NU$)#: (BA 1)0 2070:"REATING AN AUTOBOOT SECTOR WILL CORRUPT ALLOCATED FILES!":2100## -------------# - MAIN MENU -$ -------------C$""(CS40)2);"****** ******"$(CS20)2)"CURRENT DISK: ";:TR18"1541/71":ՙ"1581"$(CS34)2)"1: UTO EXECUTE CODE AT $015"$(CS34)2)"2: ET COLORS AND OPENING MESSAGE"%(CS34)2)"3: WITCH TO 64 MODE"J%(CS34)2)"4: WITCH TO 64 MODE AND BOOT PROG."%(CS34)2)"5: AND A 7.0 PROG."%(CS34)2)"6: AN PROGRAM"%&(CS34)2)"7: ISABLE EXISTING AUTOBOOT SECTOR"&0(CS34)2)"8: ALIDATE DISK"(&:(CS34)2)"9: IEW IRECTORY"K&D(CS34)2)"0: XIT PROGRAM"&N(CS40)2)"HOOSE NE>>>> ";:R$:R$;:M(R$): M0 M9 "";:590&XM0650&b M 690,840,1250,1360,1600,1670,1720,1940,2490&l ----------------'v - EXIT PROGRAM -' ----------------3'"";:U(DV):J' ----------------a' - AUTO EXEC ML -x' ----------------'(CS40)2)"********* UTO XECUTE ODE *********"'(CS40)2)" MUST START AT $015 OR BE RELOCATABLE"8("AME OF FILE";F$:"UMBER OF BYTES OF ";S$:S(S$):LM235L( S(LM1) 750(2070:" MUST BE 235 BYTES OR LESS!!":"ÒONTINUE OR XIT?"(R$: R$"X" 2100:690(15,"U1";8;0;1;0:15,"B-P";8;0:I0255:8,NU$;:I:20407)15,"B-P";8;0:8,"CBM";NU$;NU$;NU$;NU$;" TO $015";NU$;NU$;:2040o)"DDING CODE":2,DV,2,"0:"F$",P,R":2040:I0) :#2,A$:EFST:2040:8,A$;:2040:II1) EF0 ILM) 2:2150:2100)* ------------------------------ *4 - SET COLORS AND OPENING MSG -2*> ------------------------------*H:(CS40)2)"**** ET OLORS AND PENING ESSAGE ****":"OLOR ODE UMBERS:"*R"0=LACK 4=URPLE 8=RANGE 12=ED RAY1=HITE 5=REEN 9=ROWN 13=T REEN"9+\"2=ED 6=LUE 10=T ED 14=T LUE 3=YAN 7=ELLOW 11= RAY 15=T RAY"h+f"ORDER OLOR";C1:C1(C1 15):53280,C1+p"ACKGROUND OLOR";C2:C2(C2 15):53281,C2+z"HARACTER OLOR";C3:C3(C3 15):241,C3+ C2C3 ,: 53281,6:2070:"ORRY! OUR MESSAGE WILL BE INVISIBLE!"<,: "RY AGAIN!": 3:C,O,"";,I17:"********* OMMODORE 128 ULEZ **********":I,"OES THIS LOOK Y";R$: R$"Y"-" YPE IN THE OPENING MESSAGE.":" UST BE < 160 CHARACTERS!!":B$NU$-e-"_";:A$: (A$(20))2(A$(31) A$(128))2(A$(159)) 1010,1030- A$(13) 990: -L(B$):L1 B$(B$,L1):A$-1050-B$B$A$-A$;- .$:""B$:" S THIS CORRECT Y";R$:R$"Y"970V..ME$(B$,2):" ****LEASE AIT!!****":15,"U1";8;0;1;0:15,"B-P";8;0t.8I0255:8,NU$;:2040:I.B15,"B-P";8;0:1180.LI029:A:8,(A);:2040:I.V8,(C1);:2040.`I3134:A:8,(A);:2040:I.j8,(C2);:2040/tI3639:A:8,(A);:2040:I-/~8,(C3);:2040O/I4159:A:8,(A);:2040:I_/8,ME$;NU$;/ 67,66,77,0,0,0,0,78,69,87,32,67,79,76,79,82,83,32,43,32,77,69,83,83/ 65,71,69,0,0,169,141,32,208,169,141,33,208,169,133,241$0 162,0,189,58,11,240,7,32,210,255,232,76,45,11,96,147,14>00,7:4,1:2150:2100Z0 ---------------------v0 - SWITCH TO 64 MODE -0 ---------------------0""(CS40)2)"********** WITCH TO 64 ODE ***********":(CS20)2)"***LEASE AIT!!!***"115,"U1";8;0;1;0:15,"B-P";8;081I0255:8,NU$;:2040:IQ115,"B-P";8;0: 1300r1 I026:A:8,(A);:2040:I1 67,66,77,0,0,0,0,0,0,169,14,141,32,208,169,6,141,33,208,169,147,32,210,255,76,75,22612150:21002( -----------------------------%22 - SWITCH TO 64 MODE AND RUN -I2< - A BASIC PROGRAM -m2F -----------------------------2P""(CS40)2)"*********** WITCH TO 64 ODE **********":(CS40)2)"***** OAD AND UN A ROGRAM *****"3Z(CS22)2)"*** LEASE AIT!!! ***"23d15,"U1";8;0;1;0:15,"B-P";8;0P3nI0255:8,NU$;:2040:Ii3x15,"B-P";8;0: 14203I08:A:8,(A);:2040:I3 67,66,77,0,0,0,0,0,03"ILENAME TO BOOT";F$:(F$)162070:"AME TOO LONG!! (>16 CHAR.)":14303 4: A:A18,(A);:2040-4 A1D48,((F$));:2040b48,"BOOTING "F$"...";4 169,227,133,1,169,47,133,0,162,8,189,32,11,149,1,202,208,248,142,484 208,76,2,0,169,247,141,5,213,76,41,11,162,255,120,154,216,142,22,208A5 32,163,253,32,80,253,32,21,253,32,91,255,88,32,83,228,32,191,227,325 34,228,162,54,189,84,11,157,166,2,202,208,247,76,167,2,32,138,255,325 231,255,162,0,232,189,138,11,32,210,255,208,247,169,2,162,8,168,32 6 186,255,173,138,11,162,149,160,11,32,189,255,169,0,32,213,255,134,45P6 132,46,32,142,166,32,96,166,76,174,167,-1`62150:21006" ------------------------------6, - LOAD AND RUN A BASIC PROG. -66 ------------------------------7@""(CS40)2)"*** OAD AND UN A 7.0 ROGRAM ***":FL0i7J"ILENAME TO BOOT";F$:(F$)162070:"AME TOO LONG!!! (>16 CHAR.)":16107T2280: * BOOT IN 128 MODE *7^2150:21007h ----------------------7r - BOOT AN ML PROGRAM -7| ----------------------68""(CS40)2)"********** OOT AM PROGRAM **********":FL1@81610^8 -----------------------|8 - DISABLE BOOT SECTOR -8 -----------------------8""(CS40)2)"**** ISABLE AN XISTING OOT ECTOR ***"8 AF 9: (CS22)2)"*** LEASE AIT!!! ***"M9: 15,"U1";8;0;1;0:15,"B-P";8;0:8,NU$;NU$;NU$;f9: 15,"U2";8;0;1;09: TR1815,"U1";8;0;TR;0:15,"B-P";8;49: TR4015,"U1";8;0;TR;1:15,"B-P";8;169: #8,BF$:#8,BA$:: BF(BF$NU$):BA(BA$NU$):: (BA 1)0 8:: BABA 1:BFBF1h:&: TR1815,"B-P";8;4:8,(BF);(BA);:0: TR4015,"B-P";8;16:8,(BF);(BA);::: 2040:D: TR1815,"U2";8;0;TR;0:N: TR4015,"U2";8;0;TR;1:X: <;b: 2040:" HIS DISK HAS NO AUTOBOOT ENABLED!!! "F;l2100^;v -----------------v; - VALIDATE DISK -; -----------------<""(CS40)2)"*********** ALIDATE A ISK ************":(CS40)2)"* HILE RESERVING THE UTOBOOT ECTOR *":8><(CS34)2)"NSERT THE DISK AND PRESS Β!"W<R$:R$(13)1960<(CS18)2)"*** ALIDATING ***": D0 U(DV):15<15,DV,15:8,DV,8,"#":(CS26)2)"*** LLOCATING ECTOR ***":2160:2100<< ---------------= - SUBROUTINES -%= ---------------@= * SUB- DISK ERRORS *O= DS0 |=2070:" !! #";DS;DS$:2100=  * SUB- ERROR SIGNAL *= 1,8000,10,,,,2,800= =* * SUB- CLEAR AND RERUN *>4U(DV):U(DV):(CS26)2)"ҒERUN THE PROGRAM OR EXIT?":R$.>> R$"X" B>H R$"R" 2100H>Rm>\ * SUB- WRITE/ALLOCATE SECTOR *>f15,"U2";8;0;1;0:2040>pTR1815,"U1";8;0;TR;0:15,"B-P";8;4>zTR4015,"U1";8;0;TR;1:15,"B-P";8;16?#8,BF$:#8,BA$:BF(BF$NU$):BA(BA$NU$)#? (BA 1) A?: BA(BA 254):BFBF1t?: TR1815,"B-P";8;4:8,(BF);(BA);:2040?: TR4015,"B-P";8;16:8,(BF);(BA);:2040?: TR1815,"U2";8;0;TR;0?: TR4015,"U2";8;0;TR;1??@ * SUB- BOOT IN 128 MODE *9@ FL RM$"BOOT": RM$"RUN"c@(CS22)2)"*** LEASE AIT!!! ***"@15,"U1";8;0;1;0:15,"B-P";8;0@ I0255:8,NU$;:2040:I@ 15,"B-P";8;0: 2390@ I06:A:8,(A);:2040:I@$ 8,F$;NU$;NU$;:2040%A. AA(F$)("B00")15:ALAA 255:AHAA256MA8 8,(162);(AL);(160);(AH);:2040oAB 8,(76);(165);(175);:2040AL 8,RM$;(34);F$;NU$;:2040AV 67,66,77,0,0,0,0A` Aj * SUB- INSTRUCTIONS *At #2,"BOOT.INFO":15:254,2A~ :I1:"";&B :5136:EFST:L(5120): (Z$,L):II1:B EF (I22)B "RESS Œ TO CONTINUE,  TO ABORT";:R$:R$"" R$"A" B EFB 2:B "";:U(DV):"RESS ANY KEY...":R$:470B ""(CS16)2)" "C (CS16)2)" "9C (CS19)2)"Y ICTOR INGLETON"kC " HIS PROGRAM ALLOWS YOU TO ";:CS40C "MANIPULATE THE AUTOBOOT SECTOR FEATURE"C "OF THE 128 IN A NUMBER OF WAYS. ANY ";:CS40C "OF THE ROUTINES ARE DERIVED FROM"1D "SIMILAR PROGRAMS BY EVIN ISEL, RED ";:CS40_D "OWEN, AND ERRY YAN. HE PROGRAM IS,"D( "OF COURSE, IN THE PUBLIC DOMAIN."D2 :" HIS VERSION (3/15/87) NOW ";:CS40D< "SUPPORTS THE NEW 1581 OMMODORE DRIVE" EF "AS WELL AS 1541/1571/4040."AEP :" FTER LOADING IN THE PROGRAM, ";:CS40nEZ "INSERT THE DISK ON WHICH THE AUTOBOOT"Ed "SECTOR IS TO BE CREATED AND ENTER . ";:CS40En "HEN THE PROGRAM ASKS FOR THE DISK" Fx "DEVICE NUMBER ENTER THE APPROPRIATE ";:CS40:37308F "NUMBER. F YOU ONLY HAVE ONE DRIVE,"pF "JUST PRESS AND THE DEVICE WILL ";:CS40~F "BE #8."F :"HE PROGRAM CHECKS TO SEE IF TRACK 1, ";:CS40F "SECTOR 0 HAS THE "(34)""(34)" BOOT MARKER. F")G "THE MARKER IS NOT THERE IT CHECKS TO ";:CS40VG "SEE IF THE SECTOR HAS BEEN ALLOCATED."G "F IT HAS THEN ONE OF THE FILES ON THE ";:CS40G "DISK IS USING IT AND CREATING A BOOT"G "SECTOR WILL CORRUPT THAT FILE. F ALL ";:CS40%H "IS WELL, YOU WILL SEE THE MAIN MENU.":3730JH :(CS38)2)"HE OPTIONS ARE:"H :(CS36)2)"1: UTO EXECUTE CODE AT $015"H (CS36)2)"2: ET COLORS AND OPENING MESSAGE"H (CS36)2)"3: WITCH TO 64 MODE"I (CS36)2)"4: WITCH TO 64 AND BOOT A PROGRAM";I" (CS36)2)"5: AND A PROGRAM"cI, (CS36)2)"6: AN PROGRAM"I6 (CS36)2)"7: ISABLE AN EXISTING AUTOBOOT"I@ (CS36)2)"8: ALIDATE A DISK"IJ (CS36)2)"9: IEW THE IRECTORY"JT (CS36)2)"0: XIT THE PROGRAM"5J^ ::(CS22)2)"*UTO XECUTE ODE*"oJh :" HIS OPTION ALLOWS YOU TO INSERT ";:CS40Jr "A SHORT ROUTINE INTO THE AUTOBOOT"J| "SECTOR SO THAT IT WILL BE EXECUTED ON ";:CS40K "AUTOBOOTING THE DISK. HE CODE MUST BE":K "RELOCATABLE OR BE DESIGNED TO START AT ";:CS40rK "$015. T MUST BE 235 BYTES LONG OR":CS403730K "LESS. T MUST RESIDE ON THE DISK ON ";:CS40K "WHICH YOU ARE CREATING THE AUTOBOOT"L "SECTOR. HE PROGRAM ASKS FOR THE ";:CS403L "FILENAME OF THE DISKFILE AND THE SIZE"lL "OF THE CODE. HE AUTOBOOT SECTOR IS ";:CS40L "THEN CREATED AND THE READ FROM THE":CS803730L "FILE AND ADDED TO TRACK 1, SECTOR 0. ";:CS40 M "OU CAN THEN EXIT THE PROGRAM OR RERUN"BM "IT. F YOU LIKE, THE DISKFILE OF THE ";:CS40lM " CODE CAN BE SCRATCHED SINCE THE"M "CODE NOW RESIDES IN THE AUTOBOOT ";:CS40M "SECTOR AND WILL BE EXECUTED ON BOOTING"M "THE DISK."N& :(CS31)2)"*ET OLORS AND PENING ESSAGE*"KN0 :" HIS OPTION LETS YOU CREATE AN ";:CS40xN: "AUTOBOOT SECTOR WHICH WILL SET THE 40"ND "COL. SCREEN AND DISPLAY A MESSAGE AT ";:CS40NN "THE TOP OF THE SCREEN. UST FOLLOW THE"OX "MENU TO CHOOSE THE COLORS YOU LIKE. ";:CS40 "SECTOR IS WRITTEN TO THE DISK. ";:CS40xSH "NCIDENTLY, IN THIS AND THE OTHER"SR "OPTIONS TRACK 1, SECTOR 0 IS ALLOCATED ";:CS40S\ "IN A WAY THAT AVOIDS THE BUG IN THE"Tf "1541 AND 1571 THAT WILL ALLOCATE THE ";:CS40'Tp "WHOLE TRACK."PTz :(CS20)2)"* AN ROGRAM*"T :" HIS OPTION IS SIMILAR TO THE ";:CS40T "PREVIOUS ONE EXCEPT IT WILL BOOT AN "T "FILE TO THE PROPER PLACE IN MEMORY AND ";:CS40U " TO THE STARTING ADDRESS.":CS403730YU :(CS38)2)"*ISABLE AN XISTING UTOBOOT ECTOR*"U :" HIS OPTION WILL DISABLE THE ";:CS40U "AUTOBOOT SECTOR ON A DISK BY REPLACING"U "THE "(34)""(34)" MARKER WITH NULLS AND ";:CS40/V "DEALLOCATING TRACK 1, SECTOR 0.":CS803730UV :(CS18)2)"*ALIDATE A ISK*"V :" F YOU VALIDATE A DISK WITH A ";:CS40V "BOOT SECTOR, TRACK 1, SECTOR 0 WILL BE"V "DEALLOCATED. UBSEQUENT WRITING TO THE ";:CS40W"DISK MAY OVERWRITE THE BOOT SECTOR"TW"DESTROYING IT. HIS OPTION VALIDATES ";:CS40W"THE DISK AND THEN REALLOCATES THE BOOT"W$"SECTOR IF IT EXISTS.":CS403730W.:(CS16)2)"*IEW IRECTORY* " X8:" UST LIKE IT SOUNDS. IEWS THE ";:CS405XB"DISK DIRECTORY ON THE CURRENT DRIVE.";XGXXL:" ICTOR INGLETON "qXV" # 74676,323"X`" -> EREGRINE"Xj:" EVIN ISEL"Xt" # 72060,700"X~" -> EVINISEL"X:1Y""(CS40)2)" RESS ANY KEY TO CONTINUE ";BYR$:"";: