" INCREDIBOOT **** V5.0 ***(:R 735 TO EDIT 64 MESSAGES **.| 740 TO EDIT 128 MESSAGES *.PV020 .d. . .[ .  . QLINK.I . RAINBOW SOFTWARE BOB PELLEGRINO 40 WESTERLY DRIVE SICKLERVILLE NJ 08081t . .B$(256):SE12:RU14020:A48964920:B:A,B:::2 MENU ************* . 3:0,12:4,12:(12)(14)(11)p 4"":"Ԛ":"":10)"1 128 O 64 OOT":10)"2 128 OOT" 510)"3 AVE EW ERSION":10)"4 IRECTORY":10)"5 ALIDATE ISK":10)"6 CAN DISK":10)" UIT"!7"":11)"- -"6!<A$:A$"6"1700:ՋA$"Q"680:ՋA$"3"900!=A$"1"V64:ՋA$"2"V128:ՋA$"4"""::DS$:685:50:ՋA$"5"1360:50:60!b:!c:!d READ SECTOR ************ .!n"":V6412)"128 64 ":ՙ16)"128 "2"x" NSERT DISK TO UTO OOT - RESS A KEY":A$L""HECKING DISK..."r"15,8,15,"I":700:DS:685:50"8,8,8,"#":1400"T1:S0:681:683:1600:682"15,"U1";8;0;T;S:700"15,"B-P:"8;0":# GET 1ST 3 CHAR ******* .;# RE02:#8,B$(RE)::24)"INK ="(B$(0))(B$(1))A#:i# SEE IF "CBM" ******* .#B$(0)B$(1)B$(2)"CBM""HIS DISK ALREADY HAS A !":230#"VERWRITE OLD OOT?:":A$:A$"Y"50:350#:#: $ CHK ALLOCATE T1 S0 ******* .;$15,"U1";8;0;18;0:700a$15,"B-P";8;5:#8,A$:(A$)1350$"OOT SECTOR IS ALLOCATED FOR USE !"$(B$(0))EN32)", HAS ANILLEGAL INK VALUE. NWISE TO CONTINUE. ";"%" RITE OVER THIS SECTOR":" ELOCATE THIS SECTOR":" UIT"Q%A$:A$"R"950:ՋA$"Q"50:ՋA$"W"253W%J:]%T:%^ CBM - MAIN ROUTINE ************.%_:"EADY TO RITE TO OOT ECTOR...":"RESS 'Û' TO ONTINUE, '' TO BORT":A$:A$"C"50%hV128750&o:+&q INSTRUCTIONS ***** .&r741:" YOUR WHOLE MESSAGE CAN BE UP TO 96 CHARACTERS LONG"&|" THE FILENAME TO BOOT MUST BE IN THE MESSAGE SOMEWHERE AND CANNOT EXCEED 16 CHARACTERS IN LENGTH"z'" FOR EXAMPLE, IF THE MESSAGE IS: BOOTING...*MENU* -LEGAL FILENAMES WOULD BE: B,BO,BOO,BOOT,OOT,MENU,MEN,M,ETC."'" IF YOUR MESSAGE IS: MENU - THEN 'ME' IS NOT LEGAL BECAUSE OF THE CONTROL"*("CHARACTER BETWEEN THE 'M' AND 'E'. 'NU', 'M' OR 'E' WOULD BE LEGAL FILENAMES"|(" ASTERISK <*> FILENAMES WILL BOOT THE FIRST PROGRAM ON THE DISK"(11)"- PRESS ANY KEY -":A$("STORE YOUR MESSAGE IN LINES 420-439 OF THIS PROGRAM")" YOU CAN USE ANY CURSOR CONTROL CHARACTERS YOU WANT, JUST BE SURE TO TYPE THE FIRST QUOTE MARK TO ENTER QUOTE MODE")" THE BOOTED PROGRAM MUST BE ONE THAT WAS PREVIOUSLY SAVED TO DISK IN 64 MODE".*"- PRESS ANY KEY TO SEE CURRENT MESSAGE -":A$H*4,SE:0,SE:420:450N*:v* MESSAGES ******** .*M$"BOOTING * ! INCREDIBOOT ! *"*:*:W+ M$=" LOADING  ** MENU **  PLEASE WAIT "]+:c+:i+r+A$+"";:420439:"GOTO411:REM TO RE-EDIT/CONTINUE":+SESE1:SE16SE1+0,SE:4,SE:+:, CONTINUE CBM ****************.M,420:A(M$):A96"MESSAGE IS TOO LONG--"A"CHARACTERS":690q,M$"...":241,15:SE16241,11,"USE THIS MESSAGE?:",A$:A$"Y"RU480:ՋA$"+"690,446:460,"PROGRAM NAME TO BOOT:";F$6-LO(M$,F$):LO0"FILENAME "(34)F$(34)" IS NOT IN THE MESSAGE":410<-:B-:-3000:0,12:4,12:"WORKING...":A0137:XX:B$(A)(XX):-B$(114)(LO138):B$(138)((F$))-B139:L1(M$)-B$(B)(M$,L,1):BB1:-AB1255:B$(A)(0):'.A235255:B:B$(A)(B)::B$(242)(SE1)-.$:3.%:[.& WRITE SECTOR IN MEMORY ****** .a.0:m.:T1:S0.D"WRITING TO DISK...".N15,8,15:15,"I".X8,8,8,"#":700.b15,"B-P";8;0.lRE0255.v8,B$(RE);.RE/15,"U2";8;0;T;S:700 /:/:8/ ALLOCATE T1 S0 ********* .N/T1:S0:12000:c/"FINISHED."/F$"*""THE FIRST FILE ON THE DISK WILL BE BOOTED":ՙ"- "F$" - WILL BE AUTOBOOTED"/A$:50/""DS$::685:50 0(12)""::r0"":55335(((235)1)40),8:1063(((235)1)40),111:0"":55335(((235)1)40),8:1063(((235)1)40),119:14909,24:4910,5:4913,24:4914,217:: MENU DISPK1" - RESS ANY KEY TO CONTINUE - ":A$:1"CHANGE M$ LINE 420-439 - PRESS ANY KEY -":4411"CHANGE M$ LINE 790-809 - PRESS ANY KEY -":8121:1:1 ERROR CHECK ************** .1DSDS$::Վ2:!2 RUN MESSAGE ONLY ****52SE12:741:411I2SE12:741:776a2(12)(142)(11):g2:2 128 BOOT ************** .2 INSTRUCTIONS ******** . 3741:"STORE YOUR MESSAGE IN LINES 790-809 OF THIS PROGRAM"3" YOU CAN USE ANY CURSOR CONTROL CHARACTERS YOU WANT, JUST BE SURE TO TYPE THE FIRST QUOTE MARK TO ENTER QUOTE MODE"4" MESSAGE LENGTH IS LIMITED TO 151 CHARACTERS, THE MOST THAT WILL FIT IN A C-128 PROGRAM LINE."m4" "4" USE A CHARACTER FIRST IF YOU WISH TO REMOVE THE C128 MESSAGE BEFORE YOUR MESSAGE APPEARS."5" PLACE THE SCREEN COLOR CHARACTER LAST."5" THE FILENAME CAN BE ANY NAME YOU WISH. AN ASTERISK <*> WILL BOOT THE FIRST FILE ON THE DISK."5"- PRESS ANY KEY TO SEE CURRENT MESSAGE -":A$50,SE:4,SE:790:8505 :5:6 MESSAGES ************ .6 NOTE--- START YOUR MESSAGE WITH A "CLEAR HOME" TO REMOVE THE C128 "BOOTING..." MESSAGE .7 NOTE--- END THE MESSAGE IN THE SCREEN COLOR TO REMOVE THE "...." AT THE END .7M$" THE *MAD* HACKER STRIKES AGAIN !!߯"7:8 M$=" LOADING  ** MENU **  PLEASE WAIT "8:!8:'8):-8*p8,A$:"";:790809:"GOTO776 :REM TO RE-EDIT/CONTINUE":v8P:8R CONTINUE CBM ****************.8W790:M$"...":241,15:SE16241,11 9Y"USE THIS MESSAGE?:":A$:A$"Y"RU860:ՋA$"+"6919Z446:855P9\"PROGRAM NAME TO BOOT:";F$:(F$)16(F$)18609](M$)(F$)167"MESSAGE OR FILENAME IS TOO LONG--":7759_:9`:9a4000:0,12:4,12:"WORKING...":A06:XX:B$(A)(XX)::cA77(M$):B$(A)(M$,A6,1)::B7(M$)L:eABB12:XX:B$(A)(XX)::REB8:B$(B3)(SE1):BB13:hABB(F$)1:B$(A)(F$,AB1,1)::BB(F$):jAB255:B$(A)(0)::nA243255:XX:B$(A)(XX)::B$(250)(RE):550:o::p::q:; SAVE PROG WITH NEW MESSAGES *** .X;" ELECT THIS OPTION TO SAVE A VERSION OF THIS PROGRAM TO DISK.";"HE DISK WILL BE SEARCHED UNTIL THE NEXT AVAILABLE VERSION NUMBER IS FOUND,"/<" THEN THAT VERSION NUMBER WILL BE POKED INTO PROGRAM, AND THE PROGRAM WILL BE SAVED WITH THE NEW VERSION NUMBER."<" T IS A GOOD IDEA TO KEEP ALL VERSIONS OF THIS PROGRAM ON THE SAME DISK."<10)" ROGRAM?";:A$:A$:A$"Y"50<:<:<PVPV1:A$((PV),((PV))1) =F$"INCREDIBOOT."A$,=7299,(A$):"SAVING..."F$;K=(F$):DS63:"";:912=:DSDS$:685:900:ՙ:"VERIFYING..."F$:(F$)=DS0 "SAVE OK !":685:50:ՙDS$:685:900=:=:= RELOCATE TRACK 1 SECTOR 0 ****.> FIND PREV LINK :SUB1400=35 OR 70. >1400:1800`>"EARCHING FOR PREVIOUS LINK TO 1 0...": TARGET 1800>T1:S1:,7,20,"- RESS ANY KEY TO UIT -":683>15,"U1";8;0;T;S:C$:C$""1000>DS66TT1:S0:970>DS679?T18T19:970:ՋT53T54:970$?"":681:1620:6826?15,"B-P:"8;0H?#8,A$:#8,B$?"RACK:"T" ECTOR:"S" INK:"(A$)" "(B$)" "?(A$)1(B$)01100?SS1:TENS171000:970?:? NO LINK FOUND ****** .(@" INK OUND...."(27)"@":685:50@L"INK FOUND AT RACK"T"ECTOR"S:PTT:PSS: PREVIOUS LINK FOUND@MB(B)2(B(B8)8)D!AN"LEASE ELECT:":"1 EARCH FOR AVAILABLE ECTOR.":"2 NPUT A RACK AND ECTOR NUMBER.":A$:A$"1" 1105[AO"RACK:";T:"ECTOR:";S:II1:T1TEN"";:1103eAP1160AQ"EARCHING FOR AVAILABLE ...":1300: 1ST 35 TRACKSAR CHECK TRACKS 36-70 ***** .AST35:X0ATEN351150BUXX53:1144:X1BdTT1:T7011509BeT53T54:15,"B-P";8;54:X54WBf"RACK:"T;::"";BgBY13:#8,A$:XX1:D(A$):A$""D0BjD01135BlBY:1124Bo1500:A8:BY3A52(T52)(T59)(T65)BrY1A:(BI$,Y,1)"1"1142BtY:1132CvNBY1:SY1(8N):1160Cw::Cx15,"U1";8;0;XX;0:725NCz15,"B-P";8;X:TC}:{C~ NO AVAIL SECTOR ******* .C:"O OTHER FREE SECTORS ON THIS DISK":685:50C:C WRITE NEW LINK ***** .ED"REE SECTOR AT RACK"T"ECTOR"S:681:4909,120:4910,4:4913,120:4914,216:1600:682:D"RITE TO THIS SECTOR?:";:A$:15,8,15:8,8,8,"#":A$:A$"Y"1170:ՋA$"Q"50:ՋIIII0:685:50D"":T351144:1140:Ս1144:1332DDL1900;EB0:"HANGING LINK AT RACK"PT"ECTOR"PS:"TO POINT TO RACK"T"ECTOR"SRE15,"U1";8;0;PT,PSdE15,"B-P:"8;BzE8,(T);:8,(S);E15,"U2";8;0;PT,PSE READ T1 S0 TO MEMORY ***** .E"EADING RACK 1 ECTOR 0"E15,"U1";8;0;1,0F15,"B-P:"8;0$FA0255:#8,A$:A$""A$(0)3FB$(A)A$:ZF WRITING TO NEW LINK ********* .F"RITING RACK 1 ECTOR 0 TO":"RACK"T"ECTOR"SF15,"B-P:"8;0FA0255:8,B$(A);:F15,"U2";8;0;T,SF FREE T1 S0 LINK ************* .G15,"U1";8;0;1,0 G15,"B-P:"8;06G8,(0);:8,(0);KG15,"U2";8;0;1,0rG ALLOC NEW SECTOR .G"LLOCATING RACK"T"ECTOR"S:12004G"E-ALLOCATING RACK 1 ECTOR 0"G15,"U1";8;0;18;0:700*H15,"B-P:"8;4:#8,B$:#8,A$:A(A$):AA1:A$(A): AND254 TO ALLOCATEXHA(B$):AA1:A21A21: BLK FRE COUNT{HB$(A):15,"B-P:"8;4:8,B$;A$H15,"U2";8;0;18;0:15,"I"H:" - EADY...RESS ANY KEY TO CONTINUE -":A$:360H:H:I CHECK BAM FOR FREE SECTOR 1-35 . IT0:X3:XX18:1144LI!TT1:T18T19:X75:1146:ՋT351107jI$"RACK:"T;::"";I%XX1:#8,A$: SKIP BLK COUNTI&BY13:XX1:1146:#8,A$:D(A$):A$""D0I(D01330I)BY:1313 J21500:A8:BY3A52(T17)(T24)(T30)*J3Y1A:(BI$,Y,1)"1"11427J4Y:1321=JG:dJP VALIDATE ****************** .JR"ALIDATE DISK?:";:A$:A$:A$"Y"JU:15,8,15,"I":700::685:JZ"ORRY...CANNOT AUTOBOOT THIS DISK...":Kx GET STAT1541-71K}15,"U1";8;0;18,0)K15,"B-P:"8;3LKEN70:#8,B$:(B$)128EN35RKyK DEC TO BINARY *************** .KBI$"":B701:B(B)0BI$BI$"0":1510KBI$BI$"1"KBK REVERSE BINARY ************* .&LC$"":B18:C$C$(BI$,1):BI$(BI$,(BI$)1)::BI$C$:ML@ DISPLAY FOUND SECTOR .oLO15,"U1";8;0;T,S:725:DS680LT15,"B-P:"8;0LY4896:L:L SCAN DISK .L" ":"TARTING RACK: 1";A:S0)M15,8,15,"I":8,8,8,"#":725:1400:AENA1:1700gM683:"CANNING ISK...RESS <> TO UIT":TAENM15,"U1";8;0;T;S:DS66S0:1725MDS679MA$:A$""1726N"RACK:"T"  ECTOR:"S" ":681:1620:682:8)"- OLD TO AUSE -":SS1:1716#N:17307NA$(13)1718DN685:50kN SEARCH DIR FOR LINK .N"EARCHING IRECTORY FOR PREVIOUS INK":T18:SD1:DL0N"":SSD:683:681:1600:682N15,"U1";8;0;18,SD:#8,A$:#8,B$:X2O!PT(A$):PS(B$)"O"15,"B-P";8;X-O#A18HO+#8,A$:(A$)1281845O0#8,A$:#8,B$:TT(A$):S(B$):"RACK 18 ECTOR"SD" ":"INK ="TT" "S" "O2TT1S01850O5XX32:15,"B-P";8;XOP7A:PSENPS0SDPS:1820:ՙ"RACK 1 ECTOR 0 IS NOT THE FIRST BLOCK":8)"OF ANY DIRECTORY ENTRIES":685:965P:DLX1:XX3:15,"B-P";8;X:F$"":A116:#8,B$:F$F$B$:P?" INK FOUND AS THE FIRST SECTOR OF":11)F$:685:""(27)"@":1101Pl:SQq"HANGING THE FIRST LINK OF THE FILE":F$" TO POINT TO":"RACK"T"ECTOR"S:PT18:PSSD:BDL:1175YQ :_Q :wQ 67,66,77,0,0,0,0,0Q 0,169,227,133,1,169,47,133Q 0,162,8,189,32,11,149,1Q 202,208,248,142,48,208,76,2Q 0,169,247,141,5,213,76,41R 11,162,255,120,154,216,142,228R 208,32,163,253,32,80,253,32WR 21,253,32,91,255,88,32,83yR 228,32,191,227,76,235,11,162R 54,189,84,11,157,166,2,202R 208,247,76,167,2,32,138,255R 32,231,255,162,0,232,189,138R 11,32,210,255,208,247,169,2S 162,8,168,32,186,255,173,138AS 11,162,159,160,11,32,189,255bS 169,0,32,213,255,134,45,132S 46,32,142,166,32,96,166,76S 174,167S :S 32,34,228,141,255,11,169,11,141,32,208,141,33,208,173,255,11,76,71,11,0S :T 67,66,77,0,0,0,0T MESSAGE......8T 4TH BYTE AFTER MSG=SCRN COLORJT" mT 0,0,162,11,76,243,11,234,234T" T R, U, N, "T 82,85,78,34T FILENAME.........ZERO'S U BYT 150=POS OF 1 BYT BEFORE RUN" ^^BU 142,32,208,142,33,208,162,22,160,11,76,165,175HU:NU:wU DISPLAY SECTOR ML .U 162,8,32,198,255,160,3,162,0,32,207,255,157,24,5,152,157,24,217,232,224,0,208,241,96U:V. ALLOCATE ANY SECTOR .CV."ALLOCATE TRACK 1, SECTOR 0 ?:";:A$:A$:A$"Y"[V."ALLOCATING...."qV.XX18:T35XX53V.15,"U1";8;0;XX;0:700V.XX5312078V.:V. SINGLE SIDED .V.15,"B-P";8;0:A14:#8,A$:W.A1T:#8,A$:#8,A$(1):#8,A$(2):#8,A$(3)%W.A+W.:1W.:[W.BN((S0)1)((S7)1)((S15)1)xW.BY(A$(BN)):BU(T4)BNW/XS((S7)8)((S15)8)W/C1:B1X1:C(C2)::CC2:M255C:NBBY MW /NBBYW/15,"B-P";8;BU:8,(NB);X/15,"U2";8;0;XX;0X/:/X/15,"U1";8;0;18;0 : BLK FREgX/XX18BFBUBN: BUFFER POINT TO BLOCKS FREEX/15,"B-P";8;BF:#8,A$: GET BLOCKS FREEX /A(A$):AA1:A0A0X$/15,"B-P";8;BF:8,(A);: NEW BLKS FREEX&/15,"U2";8;0;18;0:Y*/:Y,/:0Y./ DOUBLE SIDED .BY0/15,"B-P";8;0lY2/A36T:#8,A$(1):#8,A$(2):#8,A$(3)sY4/AyY6/:Y8/BN((S0)1)((S7)1)((S15)1)Y:/BY(A$(BN)):BU((T36)3)BN1Y/12034