'$DYNAMIC DEFINT A-Z DECLARE SUB setmodex () DECLARE SUB copypage (BYVAL page1, BYVAL page2) DECLARE SUB setvispage (BYVAL page) DECLARE SUB fadeto (palbuff(), BYVAL red, BYVAL green, BYVAL blue) DECLARE SUB fadetopal (pal(), palbuff()) DECLARE SUB setpal (pal()) DECLARE SUB clearpage (BYVAL page) DECLARE SUB setkeys () DECLARE SUB setfont (f()) DECLARE SUB printstr (s$, BYVAL x, BYVAL y, BYVAL p) DECLARE SUB textcolor (BYVAL f, BYVAL b) DECLARE SUB rectangle (BYVAL x, BYVAL y, BYVAL w, BYVAL h, BYVAL c, BYVAL p) DECLARE SUB setwait (b(), BYVAL t) DECLARE SUB dowait () DECLARE SUB copyfile (s$, d$, b()) DECLARE SUB setdiskpages (buf(), BYVAL h, BYVAL l) DECLARE SUB loadpage (fil$, BYVAL i, BYVAL p) DECLARE FUNCTION Keyseg () DECLARE FUNCTION keyoff () DECLARE FUNCTION keyval (BYVAL a) DECLARE FUNCTION getkey () TYPE Regtype ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER ds AS INTEGER es AS INTEGER END TYPE DIM SHARED regs AS Regtype regs.ax = &H3509: CALL interruptx(&H21, regs, regs) off9 = regs.bx: seg9 = regs.es DIM font(1024), master(767), fade(1536), time(4), buffer(16500), eachline(1000), loffset(1000), menu$(10, 5), items(5), future$(10, 10) RANDOMIZE TIMER fadeto fade(), 0, 0, 0 setdiskpages buffer(), 200, 0 setmodex pal$ = "bobvga\install.pal" DEF SEG = VARSEG(font(0)): BLOAD "bobvga\install.fnt", VARPTR(font(0)): setfont font(): textcolor 15, 0 setpal master() DEF SEG = VARSEG(master(0)): BLOAD pal$, VARPTR(master(0)) dpage = 1: vpage = 0: needf = 1: ptr = 1 FOR i = 15 TO 0 STEP -1 rectangle 15 - i, 15 - i, 290 + (i * 2), 170 + (i * 2), 32 + i, 2 NEXT i copypage 2, dpage GOSUB switchon GOSUB readstuff setkeys DO: t# = TIMER setkeys IF keyval(1) > 1 THEN GOTO finis IF keyval(72) > 1 THEN ptr = ptr - 1: IF ptr < 1 THEN ptr = items(mnu) IF keyval(80) > 1 THEN ptr = ptr + 1: IF ptr > items(mnu) THEN ptr = 1 ON mnu + 1 GOSUB main, install, document rectangle 159 - (4 * (LEN(menu$(0, mnu)) + 2)), 19, 8 * (LEN(menu$(0, mnu)) + 2) + 2, 18, 7, dpage rectangle 160 - (4 * (LEN(menu$(0, mnu)) + 2)), 20, 8 * (LEN(menu$(0, mnu)) + 2), 16, 8, dpage printstr menu$(0, mnu), 160 - (4 * LEN(menu$(0, mnu))), 24, dpage FOR i = 1 TO items(mnu) IF ptr = i THEN textcolor 9 + tog, 0 printstr menu$(i, mnu), 160 - (4 * LEN(menu$(i, mnu))), 40 + ((i - 1) * 10), dpage textcolor 15, 0 NEXT i tog = tog XOR 1 SWAP vpage, dpage setvispage vpage copypage 2, dpage IF needf = 1 THEN needf = 0: fadetopal master(), fade() WHILE t# + .08 > TIMER: WEND LOOP main: IF keyval(57) > 1 OR keyval(28) > 1 THEN IF ptr = 1 THEN mnu = 1: RETURN IF ptr = 2 THEN mnu = 2: ptr = 1: RETURN IF ptr = 3 THEN GOSUB future IF ptr = 4 THEN RETURN finis END IF RETURN install: IF keyval(57) > 1 OR keyval(28) > 1 THEN IF ptr = 1 THEN SCREEN 12: GOSUB shutoff: CLEAR : SHELL "cd bobvga": SHELL "install": SHELL "cd \": SYSTEM IF ptr = 2 THEN SCREEN 12: GOSUB shutoff: CLEAR : SHELL "cd bobquest": SHELL "install": SHELL "cd \": SYSTEM IF ptr = 3 THEN SCREEN 12: GOSUB shutoff: CLEAR : SHELL "cd spitwar": SHELL "install": SHELL "cd \": SYSTEM IF ptr = 4 THEN SCREEN 12: GOSUB shutoff: CLEAR : SHELL "cd trundle": SHELL "install": SHELL "cd \": SYSTEM IF ptr = 5 THEN SCREEN 12: GOSUB shutoff: CLEAR : SHELL "cd cowbobs": SHELL "install": SHELL "cd \": SYSTEM IF ptr = 6 THEN mnu = 0: ptr = 1: RETURN END IF RETURN document: IF keyval(57) > 1 OR keyval(28) > 1 THEN IF ptr < 7 THEN readme$ = menu$(ptr, 3): GOSUB peruse IF ptr = 7 THEN mnu = 0: ptr = 1: RETURN END IF RETURN future: needl = 1 setkeys DO: t# = TIMER setkeys IF keyval(1) > 1 OR keyval(28) > 1 THEN RETURN IF keyval(57) > 1 OR keyval(77) > 1 OR keyval(80) > 1 THEN needl = 1: scrn = scrn + 1: IF scrn > max THEN scrn = 0 IF keyval(75) > 1 OR keyval(72) > 1 THEN needl = 1: scrn = scrn - 1: IF scrn < 0 THEN scrn = max rectangle fx(scrn) - (fw(scrn) * 4 + 8) - 2, fy(scrn) - 2, ((fw(scrn) + 2) * 8) + 4, ((fh(scrn) + 2) * 8) + 4, 38, dpage rectangle fx(scrn) - (fw(scrn) * 4 + 8), fy(scrn), (fw(scrn) + 2) * 8, (fh(scrn) + 2) * 8, 35, dpage FOR o = 0 TO fh(scrn) printstr future$(scrn, o), fx(scrn) - (fw(scrn) * 4), fy(scrn) + (o * 8) + 4, dpage NEXT o IF needl = 1 THEN needl = 0: loadpage "future.mxs" + CHR$(0), fs(scrn), 3 SWAP vpage, dpage setvispage vpage copypage 3, dpage WHILE t# + .08 > TIMER: WEND LOOP peruse: clearpage 3 FOR j = 0 TO 1000: eachline(j) = 0: loffset(j) = 0: NEXT j textcolor 15, 0 OPEN readme$ FOR BINARY AS #1 needf = 1: last = LOF(1): top = 0 j = 1: a$ = " ": tl = 0: loffset(0) = 1 printstr "Framing Text File", 160 - (LEN("Framing Text File") * 4), 115, vpage rectangle 58, 128, 204, 14, 7, vpage rectangle 59, 129, 202, 12, 8, vpage DO GET #1, j, a$ IF a$ = CHR$(13) THEN tl = tl + 1: loffset(tl) = j IF a$ <> CHR$(13) THEN eachline(tl) = eachline(tl) + 1 j = j + 1 rectangle 160 - (100 / (last / j)), 130, (200 / (last / j)), 10, 15, vpage LOOP UNTIL j > last fadeto fade(), 0, 0, 0 clearpage dpage: clearpage vpage DEF SEG = VARSEG(font(0)): BLOAD "bobvga\install.nrw", VARPTR(font(0)): setfont font(): textcolor 15, 0 setkeys DO: setkeys IF keyval(1) > 1 OR keyval(28) > 1 OR keyval(57) > 1 THEN fadeto fade(), 0, 0, 0: needf = 1: DEF SEG = VARSEG(font(0)): BLOAD "bobvga\bobtext.fnt", VARPTR(font(0)): setfont font(): textcolor 15, 0: CLOSE #1: RETURN IF keyval(72) > 0 AND top > 0 THEN top = top - 1 IF keyval(80) > 0 AND top < tl - 22 THEN top = top + 1 IF keyval(73) > 1 THEN top = top - 21: IF top < 0 THEN top = 0 IF keyval(81) > 1 THEN top = top + 21: IF top > tl - 22 THEN top = tl - 22 FOR k = top TO top + 22 j = loffset(k): a$ = " ": tabx = 0 FOR o = 0 TO eachline(k) GET #1, j + o, a$ IF a$ = CHR$(9) THEN tabx = tabx + 28 IF ASC(a$) > 31 THEN printstr a$, (o * 4) + tabx, ((k - top) * 8) + 10, dpage NEXT o NEXT k rectangle 0, 0, 320, 10, 81, dpage rectangle 0, 190, 320, 10, 81, dpage textcolor 240, 0 printstr "Use the arrow keys to scroll the screen", 1, 1, dpage printstr "Press ENTER, SPACE, or ESC when done. ", 12, 191, dpage textcolor 15, 0 SWAP dpage, vpage setvispage vpage copypage 3, dpage IF needf = 1 THEN fadetopal master(), fade(): needf = 0 LOOP finis: fadeto fade(), 0, 0, 0 SCREEN 13 SCREEN 12 CLEAR : SYSTEM switchon: regs.ax = &H2509: regs.ds = Keyseg: regs.dx = keyoff CALL interruptx(&H21, regs, regs) RETURN shutoff: regs.ax = &H2509: regs.ds = seg9: regs.dx = off9 CALL interruptx(&H21, regs, regs) RETURN readstuff: FOR i = 0 TO 2 READ items(i) NEXT i FOR i = 0 TO 4 READ menu$(i, 0) NEXT i FOR i = 0 TO 6 READ menu$(i, 1) NEXT i FOR i = 0 TO 7 READ menu$(i, 2) NEXT i FOR i = 1 TO 6 READ menu$(i, 3) NEXT i max = 6 FOR i = 0 TO 4 READ fh(i), fx(i), fy(i), fs(i) FOR o = 0 TO fh(i) READ future$(i, o) NEXT o fw(i) = LEN(future$(i, 0)) NEXT i RETURN DATA 4,6,7 DATA "BOB CD", "Install Games","Peruse Documentation","Future Projects","Exit Program" DATA "First Time Installation","Bob the Hamster","BobQuest","Spitwar","Trundle","Cowbobs","Return to Main Menu" DATA "Peruse Documentation","Bob the Hamster","BobQuest","Spitwar","Trundle","Cowbobs","Overall Troubleshooting","Return to Main Menu" DATA "bobvga\bobvga.txt","bobquest\readme.txt","spitwar\spit.txt","trundle\cardgame.txt","cowbobs\cowbobs.txt","helpme.txt" DATA 3,160,3,6 DATA "There are several spiffy games in the" DATA "works from BriTech International and" DATA "Hamster Republic Productions, and you" DATA "are going to get a sneak preview!" DATA 2,170,80,1 DATA "The OHRRPGCE is a game engine and" DATA "editor that allows people to make" DATA "their own RPG games." DATA 2,170,50,3 DATA "The OHRRPGCE editor has built-in" DATA "drawing programs, map editor," DATA "character editor, etc. Everything." DATA 1,160,10,4 DATA "Scrambled Eggs is our new action-" DATA "puzzle game. Match eggs to clear" DATA "the henhouse." DATA 7,160,120,5 DATA "Visit our spiffy homepage" DATA "For Info, Tech-Support, Upgrades," DATA "Patches, Codes, Strategy Guides," DATA "and anything else you might need!"