' TO whoever gets it, ' If you have any problems saving/loading drawings from BLOAD/BSAVE, ' remember two things: 1. you can't load what you haven't saved, and ' 2. It is looking in the directory of C:\windows\MIKE. To change the ' default, look at the IF line in the INTRO sub under the line CASE "M", "m". ' Oh yeah: ' You people need to remember: click and drag!!!! ' The text...it is not a complete character set, !JUST CAPS!. ' I can't fix the problem with ZOOM. ' ---- ' This code has been modified greatly from the original one. ' 1. The interface is now very easy ' 2. Since I changed the interface, I needed to change the left mouse ' controls. I made them extremely shorter, and also easy for you to ' look for. ' 3. Based on all the criticism from ~J.d.~, I changed many things, ' and also added some. For example: he told me that I should have a ' PALETTE command, it now does. He also told me that it was too hard ' to remember where to click and what to click when it comes to the ' corners. I changed this a little, but they're still there. I kept ' these options because they are a safe way to do things. If I put them ' on the main `tool bar`, you might hit, lets say EXIT, instead of, ' lets say, CUBE. You wouldn't get you're picture back. ' E me with comments, hopefully no criticism... ' --MIKE HULME-- RVFH11a DECLARE SUB PALET () DECLARE SUB INITIALIZE (MAVRIK!) DECLARE SUB ZOOM (XM%, YM%, COL!, XCOL!) DECLARE SUB MAV () DECLARE SUB LETTERS () DECLARE SUB WINDRAW () DECLARE SUB INTRO () DECLARE SUB FONTS () DECLARE SUB CREDITS () DECLARE SUB MOUSESTATUS (LB%, RB%, XM%, YM%) DECLARE SUB MOUSEPUT (X%, Y%) DECLARE SUB MOUSEHIDE () DECLARE SUB MouseDriver (ax%, BX%, cx%, dx%) DECLARE SUB MOUSESHOW () DECLARE FUNCTION MouseInit% () DIM SHARED mouse$ DIM SHARED FILE$, odir$, NAM$, COM$ DIM SHARED MAVRIK%(10000) COMMON SHARED COL, XM, YM, XB, YB COMMON SHARED DIR2$, XM%, YM% mouse$ = SPACE$(57) FOR I% = 1 TO 57 READ A$ h$ = CHR$(VAL("&H" + A$)) MID$(mouse$, I%, 1) = h$ NEXT I% DATA 55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B DATA 5E,08,8B,0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53 DATA 8B,5E,0C,89,07,58,8B,5E,0A,89,07,8B,5E,08,89,0F DATA 8B,5E,06,89,17,5D,CA,08,00 CLS ms% = MouseInit% IF NOT ms% THEN PRINT "Mouse not found": END END IF ON ERROR GOTO HANDLER 5 LETTERS SCREEN 13: CLS MAV INITIALIZE (MAVRIK%) 15 INTRO MOUSEHIDE 7 CLS WINDRAW DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 6 FIRST = 1: LINE (1, 1)-(318, 140), 0, B: COL = 68 DO MOUSESTATUS LB%, RB%, XM%, YM% IF CUROP = 14 THEN MOUSEHIDE: DEF SEG = &HA000: BLOAD DIR2$ + "MIKEUNDO.PIC", 0: DEF SEG = 0: MOUSEPUT 160, 50: CUROP = 0: CRO$ = "NONE,": GOTO 1 IF CUROP = 1 AND COL > 168 THEN MOUSEHIDE: CALL PALET: CUROP = 0: CRO$ = "NONE,": GOTO 1 IF RB% = -1 THEN MOUSEHIDE IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% * .5 < 3 THEN GOTO 1 IF XM% * .5 > 317 THEN GOTO 1 XB = XM% / 2: YB = YM% IF CUROP = 8 THEN CALL ZOOM(XM%, YM%, COL, XCOL): GOTO 1 IF CUROP = 11 THEN CALL FONTS: GOTO 1 IF CUROP = 2 THEN MOUSEHIDE: LINE (1, 1)-(318, 140), COL, B: PAINT (XM% / 2, YM%), COL, COL: MOUSESHOW IF CUROP = 3 THEN FLX = XM% / 2: FLY = YM%: GOSUB FINDCOL2: MOUSEHIDE: LINE (1, 1)-(318, 140), COL, B: PAINT (FLX, FLY), COL2, COL: MOUSESHOW: GOTO 1 IF CUROP = 9 THEN DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW: CCOL = COL IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% / 2 < 3 THEN GOTO 1 IF XM% / 2 > 317 THEN GOTO 1 IF RB% = 0 THEN XM = XM% / 2: YM = YM%: RAD = XM - XB MOUSEHIDE CIRCLE (XB, YB), RAD, COL END IF LOOP UNTIL RB% = 0 MOUSESHOW COLOR COL: GOTO 1 END IF IF CUROP = 10 THEN IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% / 2 < 3 THEN GOTO 1 IF XM% / 2 > 317 THEN GOTO 1 MOUSEHIDE REDIM SCRSV%(23000) GET (1, 1)-(318, 140), SCRSV% IF RB% = -1 THEN DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSEHIDE: CCOL = COL XM = XM% / 2: YM = YM%: RAD = XM - XB CIRCLE (XB, YB), RAD, COL, , , ASP PUT (1, 1), SCRSV%, PSET MOUSESHOW IF LB% = -1 THEN ASP = ASP + .015: IF FIX(ASP) = 5 THEN ASP = 0 LOOP UNTIL RB% = 0 END IF CIRCLE (XB, YB), RAD, COL, , , ASP: ASP = 0 ERASE SCRSV% MOUSESHOW COLOR COL: GOTO 1 END IF IF CUROP = 12 THEN DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW: CCOL = COL IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% * .5 < 3 THEN GOTO 1 IF XM% * .5 > 317 THEN GOTO 1 IF COL >= 36 AND COL <= 46 THEN CCOL = 35 IF COL >= 67 AND COL <= 77 THEN CCOL = 66 IF COL >= 98 AND COL <= 108 THEN CCOL = 97 IF COL >= 110 AND COL <= 120 THEN CCOL = 110 IF COL >= 122 AND COL <= 132 THEN CCOL = 122 IF COL >= 134 AND COL <= 144 THEN CCOL = 134 IF COL >= 146 AND COL <= 156 THEN CCOL = 146 IF COL >= 158 AND COL <= 168 THEN CCOL = 158 IF COL >= 169 THEN GOTO 1 COOL = CCOL IF RB% = 0 THEN XM = XM% / 2: YM = YM%: RAD = XM - XB: IF RAD > 60 THEN RAD = 60 IF RAD < 11 THEN GOTO ORA MOUSEHIDE FOR R = 1 TO 11: CIRCLE (XB + R, YB), RAD - R, CCOL: PAINT (XB + R, YB), CCOL: CCOL = CCOL + 1: NEXT: GOTO ORB ORA: MOUSEHIDE FOR R = 1 TO RAD: CIRCLE (XB + R, YB), RAD - R, CCOL: PAINT (XB + R, YB), CCOL: CCOL = CCOL + 1: NEXT ORB: END IF LOOP UNTIL RB% = 0 MOUSESHOW COLOR COL: GOTO 1 END IF IF CUROP = 13 THEN DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW: CCOL = COL IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% * .5 < 3 THEN GOTO 1 IF XM% * .5 > 317 THEN GOTO 1 IF COL >= 36 AND COL <= 46 THEN CCOL = 35 IF COL >= 67 AND COL <= 77 THEN CCOL = 66 IF COL >= 98 AND COL <= 108 THEN CCOL = 97 IF COL >= 110 AND COL <= 120 THEN CCOL = 110 IF COL >= 122 AND COL <= 132 THEN CCOL = 122 IF COL >= 134 AND COL <= 144 THEN CCOL = 134 IF COL >= 146 AND COL <= 156 THEN CCOL = 146 IF COL >= 158 AND COL <= 168 THEN CCOL = 158 IF COL >= 169 THEN GOTO 1 COOL = CCOL IF RB% = 0 THEN XM = XM% / 2: YM = YM%: RAD = XM - XB: IF RAD > 60 THEN RAD = 60 IF RAD < 11 THEN GOTO ORA2 MOUSEHIDE FOR R = 1 TO 11: CIRCLE (XB - R, YB), RAD - R, CCOL: PAINT (XB - R, YB), CCOL: CCOL = CCOL + 1: NEXT: GOTO ORB2 ORA2: MOUSEHIDE FOR R = 1 TO RAD: CIRCLE (XB - R, YB), RAD - R, CCOL: PAINT (XB - R, YB), CCOL: CCOL = CCOL + 1: NEXT ORB2: END IF LOOP UNTIL RB% = 0 MOUSESHOW COLOR COL: GOTO 1 END IF IF CUROP = 7 THEN DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% * .5 < 3 THEN GOTO 1 IF XM% * .5 > 317 THEN GOTO 1 IF RB% = -1 THEN MOUSEHIDE: CPOI = POINT(XM% / 2, YM%): MOUSESHOW COLOR 15: LOCATE 23, 2: PRINT "POINT COLOR: "; CPOI; " " LOOP UNTIL RB% = -1 AND LB% = -1 END IF IF CUROP = 4 THEN PSET (XM% / 2, YM%), COL DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% * .5 < 3 THEN GOTO 1 IF XM% * .5 > 317 THEN GOTO 1 IF RB% = 0 THEN MOUSEHIDE: LINE -(XM% / 2, YM%), COL, B: XM = XM% / 2: YM = YM%: MOUSESHOW LOOP UNTIL RB% = 0 END IF IF CUROP = 5 THEN PSET (XM% / 2, YM%), COL: CCOL = COL: XB% = (XM% / 2): YB% = YM% DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% * .5 < 3 THEN GOTO 1 IF XM% * .5 > 317 THEN GOTO 1 IF RB% = 0 THEN MOUSESTATUS LB%, RB%, XM%, YM%: MOUSEHIDE IF COL >= 36 AND COL <= 46 THEN CCOL = 35 IF COL >= 67 AND COL <= 77 THEN CCOL = 66 IF COL >= 98 AND COL <= 108 THEN CCOL = 97 IF COL >= 110 AND COL <= 120 THEN CCOL = 110 IF COL >= 122 AND COL <= 132 THEN CCOL = 122 IF COL >= 134 AND COL <= 144 THEN CCOL = 134 IF COL >= 146 AND COL <= 156 THEN CCOL = 146 IF COL >= 158 AND COL <= 168 THEN CCOL = 158 IF COL >= 169 THEN GOTO 1 COOL = CCOL FOR R = 1 TO 11: LINE ((XB% - 11) + R, (YB% - 11) + R)-((XM% / 2) - 11 + R, YM% - 11 + R), CCOL, BF: CCOL = CCOL + 1: NEXT R XM = XM% / 2: YM = YM%: MOUSESHOW END IF LOOP UNTIL RB% = 0 GOTO 1 END IF IF CUROP = 6 THEN PSET (XM% / 2, YM%), COL: CCOL = COL: XB% = (XM% / 2): YB% = YM% DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW IF YM% > 139 THEN GOTO 1 IF YM% < 3 THEN GOTO 1 IF XM% * .5 < 3 THEN GOTO 1 IF XM% * .5 > 317 THEN GOTO 1 IF RB% = 0 THEN MOUSESTATUS LB%, RB%, XM%, YM%: MOUSEHIDE IF COL >= 36 AND COL <= 46 THEN CCOL = 35 IF COL >= 67 AND COL <= 77 THEN CCOL = 66 IF COL >= 98 AND COL <= 108 THEN CCOL = 97 IF COL >= 110 AND COL <= 120 THEN CCOL = 110 IF COL >= 122 AND COL <= 132 THEN CCOL = 122 IF COL >= 134 AND COL <= 144 THEN CCOL = 134 IF COL >= 146 AND COL <= 156 THEN CCOL = 146 IF COL >= 158 AND COL <= 168 THEN CCOL = 158 IF COL >= 169 THEN GOTO 1 COOL = CCOL FOR R = 1 TO 11: LINE ((XB% - 11) + R, (YB% - 11) + R)-((XM% / 2) - 11 + R, YM% - 11 + R), CCOL, B: CCOL = CCOL + 1: NEXT R XM = XM% / 2: YM = YM%: MOUSESHOW END IF LOOP UNTIL RB% = 0 GOTO 1 END IF 1 WINDRAW: MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW END IF IF LB% = -1 THEN IF FIRST = 1 AND YM% < 141 THEN MOUSEHIDE: PSET (XM% / 2, YM%), COL: FIRST = 0: MOUSESHOW: CURX = XM% * .5: CURY = YM%: MOUSESHOW IF FIRST = 0 AND YM% < 141 THEN MOUSEHIDE IF XM% * .5 < 2 THEN GOTO 1 IF XM% * .5 > 318 THEN GOTO 1 IF YM% < 2 THEN GOTO 1 IF YM% > 140 THEN GOTO 1 LINE -(XM% * .5, YM%), COL: MOUSESHOW: CURX = XM% * .5: CURY = YM% END IF IF YM% > 185 AND YM% < 195 AND XM% / 2 > 2 AND XM% / 2 < 317 THEN MOUSEHIDE PSET (XCOL, 184), 0: PSET (XCOL, 196), 0 COL = POINT(XM% / 2, YM%) XCOL = XM% / 2 PSET (XCOL, 184), 15: PSET (XCOL, 196), 15 FILL = 0 MOUSESHOW END IF IF XM% / 2 >= 4 AND XM% / 2 <= 62 AND YM% >= 149 AND YM% <= 157 THEN MOUSEHIDE: COLOR 15: LOCATE 23, 2: PRINT "PRESS ESC TO CANCEL, C TO CONTINUE...": SLEEP: IF INKEY$ = CHR$(27) THEN GOTO 2 ELSE GOTO 7 IF XM% / 2 >= 4 AND XM% / 2 <= 62 AND YM% >= 157 AND YM% <= 165 THEN FIRST = 1: CUROP = 1: CRO$ = "PALETTE," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 4 AND XM% / 2 <= 62 AND YM% >= 165 AND YM% <= 173 THEN FIRST = 1: CUROP = 2: CRO$ = "FILL," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 64 AND XM% / 2 <= 127 AND YM% >= 149 AND YM% <= 157 THEN FIRST = 1: CUROP = 3: CRO$ = "PAINT," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 64 AND XM% / 2 <= 127 AND YM% >= 157 AND YM% <= 165 THEN FIRST = 1: CUROP = 4: CRO$ = "SQUARE," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 64 AND XM% / 2 <= 127 AND YM% >= 165 AND YM% <= 173 THEN FIRST = 1: CUROP = 5: CRO$ = "CUBE," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 129 AND XM% / 2 <= 190 AND YM% >= 149 AND YM% <= 157 THEN FIRST = 1: CUROP = 6: CRO$ = "HOL. CUBE," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 129 AND XM% / 2 <= 190 AND YM% >= 157 AND YM% <= 165 THEN FIRST = 1: CUROP = 7: CRO$ = "POINT," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 129 AND XM% / 2 <= 190 AND YM% >= 165 AND YM% <= 173 THEN FIRST = 1: CUROP = 8: CRO$ = "ZOOM," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 192 AND XM% / 2 <= 251 AND YM% >= 149 AND YM% <= 157 THEN FIRST = 1: CUROP = 9: CRO$ = "CIRCLE," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 192 AND XM% / 2 <= 251 AND YM% >= 157 AND YM% <= 165 THEN FIRST = 1: CUROP = 10: CRO$ = "ELLIPSE," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 192 AND XM% / 2 <= 251 AND YM% >= 165 AND YM% <= 173 THEN FIRST = 1: CUROP = 11: CRO$ = "TEXT," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 253 AND XM% / 2 <= 311 AND YM% >= 149 AND YM% <= 157 THEN FIRST = 1: CUROP = 12: CRO$ = "SPHERE1," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 253 AND XM% / 2 <= 311 AND YM% >= 157 AND YM% <= 165 THEN FIRST = 1: CUROP = 13: CRO$ = "SPHERE2," MOUSEHIDE DEF SEG = &HA000: BSAVE DIR2$ + "MIKEUNDO.PIC", 0, 64000: DEF SEG = 0 MOUSESHOW END IF IF XM% / 2 >= 253 AND XM% / 2 <= 311 AND YM% >= 165 AND YM% <= 173 THEN FIRST = 1: CUROP = 14: CRO$ = "UNDO," END IF END IF 2 COLOR 15: LOCATE 23, 2: PRINT "CURRENT OPTIONS: ": LOCATE 23, 19: COLOR COL: PRINT CRO$; COL; " " FOR I = 1 TO 100: MOUSESHOW: NEXT I IF YM% > 140 THEN FIRST = 1 IF XM% / 2 = 319 AND YM% = 199 AND LB% = -1 THEN MOUSEHIDE: GOSUB SAVING IF XM% / 2 = 0 AND YM% = 199 AND LB% = -1 THEN MOUSEHIDE: GOSUB LOADING IF INKEY$ = "C" THEN MOUSEPUT 160, 199: LINE (2, 145)-(317, 197), 0, BF: WINDRAW IF XM% / 2 = 319 AND YM% = 0 AND RB% = -1 THEN MOUSEPUT 160, 199: LINE (2, 145)-(317, 197), 0, BF: WINDRAW IF XM% / 2 = 0 AND YM% = 0 AND RB% = -1 THEN CREDITS LOOP SAVING: MOUSEHIDE LINE (2, 145)-(317, 197), 0, BF COLOR 15 LOCATE 23, 2: PRINT "PRESS ESC TO CANCEL OR # OF FILE...." SLEEP DO SELECT CASE INKEY$ CASE CHR$(27) LINE (2, 145)-(317, 197), 0, BF WINDRAW MOUSEPUT 160, 199 MOUSESHOW RETURN CASE "9" MP$ = "7": GOTO YEA CASE "8" MP$ = "7": GOTO YEA CASE "7" MP$ = "7": GOTO YEA CASE "6" MP$ = "6": GOTO YEA CASE "5" MP$ = "6": GOTO YEA CASE "4" MP$ = "6": GOTO YEA CASE "3" MP$ = "3": GOTO YEA CASE "2" MP$ = "3": GOTO YEA CASE "1" MP$ = "3": GOTO YEA END SELECT LOOP YEA: LINE (2, 145)-(317, 197), 0, BF DEF SEG = &HA000: BSAVE DIR2$ + "PICTURE" + MP$ + ".PIC", 0, 64000: DEF SEG = 0 LOCATE 23, 2: PRINT "SAVED: " + DIR2$ + "PICTURE" + MP$ + ".PIC": SLEEP 2: CLS DEF SEG = &HA000: BLOAD DIR2$ + "PICTURE" + MP$ + ".PIC", 0: DEF SEG = 0 LOCATE 23, 2: PRINT "PRESS A KEY TO CONTINUE..." SLEEP LINE (2, 145)-(317, 197), 0, BF WINDRAW MOUSEPUT 160, 199 MOUSESHOW RETURN LOADING: MOUSEHIDE WINDRAW LINE (2, 145)-(317, 197), 0, BF COLOR 15 LOCATE 23, 2: PRINT "PRESS ESC TO CANCEL OR # OF FILE...."; SLEEP DO SELECT CASE INKEY$ CASE CHR$(27) LINE (2, 145)-(317, 197), 0, BF WINDRAW MOUSEPUT 160, 199 MOUSESHOW RETURN CASE "1" MP$ = "1": GOTO OK CASE "9" MP$ = "9": GOTO OK CASE "8" MP$ = "8": GOTO OK CASE "7" MP$ = "7": GOTO OK CASE "6" MP$ = "6": GOTO OK CASE "5" MP$ = "5": GOTO OK CASE "4" MP$ = "4": GOTO OK CASE "3" MP$ = "3": GOTO OK CASE "2" MP$ = "2": GOTO OK CASE "0" GOSUB LONGLODE: GOTO 6 END SELECT LOOP OK: PRINT MP$ DEF SEG = &HA000: BLOAD DIR2$ + "PICTURE" + MP$ + ".PIC", 0: DEF SEG = 0 1111 LOCATE 23, 2: PRINT "PRESS A KEY TO CONTINUE..." MOUSEPUT 160, 199 MOUSESHOW SLEEP MOUSEHIDE LINE (2, 145)-(317, 197), 0, BF WINDRAW MOUSEPUT 160, 199 MOUSESHOW RETURN LONGLODE: LINE (2, 145)-(317, 197), 0, BF LOCATE 21, 2: PRINT "TYPE IN A FILE NAME TO LOAD," LOCATE 22, 2: PRINT "WITH DIR. AND EXTENSION:" LOCATE 23, 3: INPUT LOADFILE$ DEF SEG = &HA000: BLOAD LOADFILE$, 0: DEF SEG = 0 LINE (2, 145)-(317, 197), 0, BF: WINDRAW COLOR 15: LOCATE 23, 3: PRINT "PRESS ANY KEY TO CONTINUE...": SLEEP: LOCATE 23, 3: PRINT " " RETURN FINDCOL2: MOUSEHIDE LINE (2, 145)-(317, 197), 0, BF WINDRAW COLOR 15 LOCATE 23, 2: PRINT "BORDER: FILL: POINT: DONE" COLOR COL: LOCATE 23, 9: PRINT COL COLOR COL2: LOCATE 23, 19: PRINT COL2 DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW IF YM% > 185 AND YM% < 195 AND XM% / 2 > 2 AND XM% / 2 < 317 AND LB% = -1 THEN MOUSEHIDE PSET (XCOL2, 184), 0: PSET (XCOL2, 196), 0 COL2 = POINT(XM% / 2, YM%): COLOR COL2: LOCATE 23, 19: PRINT COL2 XCOL2 = XM% / 2 PSET (XCOL2, 184), 13: PSET (XCOL2, 196), 13 END IF IF YM% > 185 AND YM% < 195 AND XM% / 2 > 2 AND XM% / 2 < 317 AND RB% = -1 THEN MOUSEHIDE PSET (XCOL, 184), 0: PSET (XCOL, 196), 0 COL = POINT(XM% / 2, YM%): COLOR COL: LOCATE 23, 9: PRINT COL XCOL = XM% / 2 PSET (XCOL, 184), 15: PSET (XCOL, 196), 15 END IF IF YM% < 140 AND LB% = -1 OR YM% < 140 AND RB% = -1 THEN MOUSEHIDE: CPOI = POINT(XM% / 2, YM%): COLOR CPOI: LOCATE 23, 30: PRINT CPOI: MOUSESHOW IF YM% > 174 AND YM% < 184 AND XM% / 2 > 279 AND XM% / 2 < 312 AND LB% = -1 THEN MOUSEHIDE LINE (2, 145)-(317, 197), 0, BF WINDRAW MOUSEPUT 160, 199 MOUSESHOW RETURN END IF LOOP HANDLER: SELECT CASE ERR CASE 5 MOUSESHOW RESUME 1 CASE 62 CLOSE #1 RESUME 15 CASE ELSE WINDRAW LINE (2, 145)-(317, 197), 0, BF LOCATE 23, 3: PRINT "PRESS ANY KEY TO CONTINUE...": SLEEP: WINDRAW: CUROP = 0: RESUME 6 END SELECT ' Note -2 SUB CREDITS 111 SCREEN 12: CLS COLOR 9: PRINT "MAVERICK PROGRAMMING IS:" COLOR 1: PRINT "-MIKE- HULME" PRINT "~ERIC~ CLEMMONS" PRINT "JOHN ~J.d~ DIAMOND (especially ZOOM, PALETTE idea)" PRINT : COLOR 4 PRINT "MAVERICK PROGRAMMING is currently looking for music composers" PRINT " and also a graphics artist. It will also welcome new " PRINT " members at anytime, including ones that will just give" PRINT " ideas for cool, original games. Also members who are " PRINT " looking to become great programmers are welcommed." PRINT : COLOR 12 PRINT "PRODRAW2 is shareware, but, any routines used will" PRINT "have to be credited to MAVERICK PROGRAMMING and/or ~J.d~." PRINT : COLOR 15 PRINT "For more information concerning PRODRAW2 or MAVERICK PROGRAMMING," PRINT "E-mail -MIKE- at RVFH11A or ~ERIC~ at ?????? or ~J.d~ at ??????." END END SUB SUB FONTS SHARED XM%, YM%, COL SHARED LEA$, LEB$, LEC$, LED$, LEE$, LEF$, LEG$ SHARED LEH$, LEI$, LEJ$, LEK$, LEL$, LEM$, LEN$ SHARED LEO$, LEP$, LEQ$, LER$, LES$, LET$, LEU$ SHARED LEV$, LEW$, LEX$, LEY$, LEZ$, LE0$, LE1$ SHARED LE2$, LE3$, LE4$, LE5$, LE6$, LE7$, LE8$ SHARED LE9$, LEPE$, LE$, LEUP$, LEDN$, LEQU$, LECM$ MOUSEHIDE LINE (2, 145)-(317, 197), 0, BF WINDRAW COLOR 15: LOCATE 23, 2: LINE INPUT ">", TEXT$ X = XM% / 2 Y = YM% QD = 1 FOR QA = 1 TO LEN(TEXT$) QB$ = MID$(TEXT$, QD, 1) IF QB$ = "A" THEN QC$ = LEA$ IF QB$ = "B" THEN QC$ = LEB$ IF QB$ = "C" THEN QC$ = LEC$ IF QB$ = "D" THEN QC$ = LED$ IF QB$ = "E" THEN QC$ = LEE$ IF QB$ = "F" THEN QC$ = LEF$ IF QB$ = "G" THEN QC$ = LEG$ IF QB$ = "H" THEN QC$ = LEH$ IF QB$ = "I" THEN QC$ = LEI$ IF QB$ = "J" THEN QC$ = LEJ$ IF QB$ = "K" THEN QC$ = LEK$ IF QB$ = "L" THEN QC$ = LEL$ IF QB$ = "M" THEN QC$ = LEM$ IF QB$ = "N" THEN QC$ = LEN$ IF QB$ = "O" THEN QC$ = LEO$ IF QB$ = "P" THEN QC$ = LEP$ IF QB$ = "Q" THEN QC$ = LEQ$ IF QB$ = "R" THEN QC$ = LER$ IF QB$ = "S" THEN QC$ = LES$ IF QB$ = "T" THEN QC$ = LET$ IF QB$ = "U" THEN QC$ = LEU$ IF QB$ = "V" THEN QC$ = LEV$ IF QB$ = "W" THEN QC$ = LEW$ IF QB$ = "X" THEN QC$ = LEX$ IF QB$ = "Y" THEN QC$ = LEY$ IF QB$ = "Z" THEN QC$ = LEZ$ IF QB$ = " " THEN QC$ = LE$ IF QB$ = "." THEN QC$ = LEPE$ IF QB$ = "c" THEN QC$ = LECM$ IF QB$ = "?" THEN QC$ = LEQU$ IF QB$ = "1" THEN QC$ = LE1$ IF QB$ = "2" THEN QC$ = LE2$ IF QB$ = "3" THEN QC$ = LE3$ IF QB$ = "4" THEN QC$ = LE4$ IF QB$ = "5" THEN QC$ = LE5$ IF QB$ = "6" THEN QC$ = LE6$ IF QB$ = "7" THEN QC$ = LE7$ IF QB$ = "8" THEN QC$ = LE8$ IF QB$ = "9" THEN QC$ = LE9$ IF QB$ = "0" THEN QC$ = LE0$ IF QB$ = ">" THEN QC$ = LEUP$ IF QB$ = "<" THEN QC$ = LEDN$ QD = QD + 1 DRAW "BM" + STR$(X) + "," + STR$(Y) + "S4C" + STR$(COL) + QC$ X = X + 6 NEXT QA MOUSESHOW END SUB SUB INITIALIZE (MAVRIK) CLS : SCREEN 0 LETTERS SHARED LEA$, LEB$, LEC$, LED$, LEE$, LEF$, LEG$ SHARED LEH$, LEI$, LEJ$, LEK$, LEL$, LEM$, LEN$ SHARED LEO$, LEP$, LEQ$, LER$, LES$, LET$, LEU$ SHARED LEV$, LEW$, LEX$, LEY$, LEZ$, LE0$, LE1$ SHARED LE2$, LE3$, LE4$, LE5$, LE6$, LE7$, LE8$ SHARED LE9$, LEPE$, LE$, LEUP$, LEDN$, LEQU$ SCREEN 12: CLS COLOR 15: PRINT "PRODRAW2!!! {MOUSE OPERATIONS}" COLOR 9: PRINT : PRINT "CLS: CLS" PRINT "PALETTE: CHANGE PALETTE COLORS (NUMBERS 169-224 ONLY)" PRINT " PRESS R, G, OR B TO MOVE THAT COLOR UP 1" PRINT " PRESS E, F, OR V TO MOVE THAT COLOR DOWN 1." PRINT "FILL: COMMAND IN BASIC WOULD BE PAINT (X, Y), COLOR1, COLOR1; CLICK RIGHT" PRINT " BUTTON ON PLACE TO FILL" PRINT "PAINT: COMMAND IN BASIC WOULD BE PAINT (X, Y), COLOR2, COLOR1; CLICK RIGHT" PRINT "BUTTON ON PLACE TO FILL" PRINT "SQUARE: CLICK ON 1 CORNER, DRAG TO OTHER WITH RIGHT BUTTON" PRINT "CUBE: DRAWS CUBE; see SQUARE" PRINT "HOLLOW CUBE: DRAWS HOLLOW CUBE; see CUBE" PRINT "POINT: RIGHT BUTTON, DRAG; SHOWS WHAT COLOR IS AT THIS POINT" PRINT "ZOOM: RIGHT BUTTON TO ZOOM IN, PLACE A POINT; CLICK DONE WHEN DONE--NOT ACCURATE" PRINT "CIRCLE: CLICK AND DRAG RIGHT" PRINT "ELLIPSE: CLICK AND DRAG RIGHT, LEFT BUTTON TO CHANGE ELLIPSE SHAPE" PRINT "TEXT: RIGHT BUTTON FOR TEXT, ENTER WHEN DONE, CAPS ONLY, USE c IN PLACE OF COMMA" PRINT "SPHERES: see CIRCLE" PRINT "UNDO: ERASES CHANGES SINCE LAST TOOL CHANGE" COLOR 12: PRINT PRINT "UPPER-LEFT CORNER OF SCREEN, RIGHT BUTTON: EXIT" PRINT "BOTTOM-LEFT CORNER OF SCREEN, LEFT BUTTON: LOAD" PRINT "BOTTOM-RIGHT CORNER OF SCREEN, LEFT BUTTON: SAVE" PRINT "UPPER-RIGHT CORNER OF SCREEN, RIGHT BUTTON OR 'C': REDRAW OPTIONS" COLOR 14: PRINT PRINT "TURN CAPS LOCK ON." SLEEP: SCREEN 13: CLS RANDOMIZE TIMER N = 16: C = 1: B = 1: A = 1: FOR A = 2 TO 62 STEP 2: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: NEXT A A = 1: FOR B = 2 TO 62 STEP 2: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: NEXT B B = 1: FOR C = 2 TO 62 STEP 2: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: NEXT C B = 1: A = 1: C = 28: FOR A = 27 TO 62 STEP 3: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: C = C + 3: NEXT A B = 28: A = 1: C = 28: FOR A = 27 TO 62 STEP 3: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: C = C + 3: B = B + 3: NEXT A B = 1: A = 1: C = 30: FOR B = 27 TO 62 STEP 3: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: C = C + 3: NEXT B B = 1: A = 28: C = 28: FOR B = 27 TO 62 STEP 3: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: A = A + 3: NEXT B B = 18: A = 0: C = 63: FOR C = 40 TO 62 STEP 2: PALETTE N, (256 ^ 2 * A) + (256 * B) + C: N = N + 1: B = B + 2: NEXT C PALETTE 16, (256 ^ 2 * 0) + (256 * 0) + 0 PALETTE 169, (256 ^ 2 * 35) + (256 * 20) + 50 CLS DEF SEG = &HA000: BLOAD "C:\WINDOWS\MIKE\PRODRAW2.PIC", 0: DEF SEG = 0 PUT (71, 147), MAVRIK%, PSET SLEEP OPEN "C:\PROPAL.PAL" FOR INPUT AS #1 DO WHILE NOT EOF(1) INPUT #1, PL, B, G, R IF PL < 1 AND PL > 256 THEN GOTO 16 PALETTE PL, (256 ^ 2 * B) + (256 * G) + R 16 LOOP CLS : CLOSE #1 END SUB SUB INTRO CLS : SCREEN 13: WINDRAW LOCATE 2, 14: COLOR 14: PRINT "VERSION 2.0" LINE (2, 145)-(317, 197), 0, BF COLOR 9 LOCATE 21, 2: PRINT "THIS IS WHERE YOU WOULD PUT CHARACTER" LOCATE 22, 2: PRINT "INFO AND STATUSES." LOCATE 5, 3: PRINT "THIS IS WHERE THE SCENES' PICTURES" LOCATE 6, 5: PRINT "FOR THE RPG WOULD BE." SLEEP 5: CLS : WINDRAW COLOR 15 LINE (2, 145)-(317, 197), 0, BF LOCATE 2, 2: PRINT "THIS DRAWER SAVES YOUR PICTURE IN BSAVE" LOCATE 3, 5: PRINT "FORMAT:" IF DIR2$ = "" THEN DIR2$ = "C:\WINDOWS\MIKE\" LOCATE 5, 2: PRINT DIR2$ LOCATE 7, 2: PRINT "TO CHANGE DIR. FOR BLOAD, TYPE B." LOCATE 8, 2: PRINT "TO CONTINUE, PRESS M." DO SELECT CASE INKEY$ CASE "b", "B" GOSUB DIR2CG CASE "M", "m" IF DIR2$ = "" THEN DIR2$ = "C:\WINDOWS\MIKE\" EXIT SUB END SELECT LOOP DIR2CG: LOCATE 21, 2: PRINT "TYPE IN A NEW DIRECTORY, INCLUDE DRIVE" LOCATE 22, 3: INPUT "", DIR2$ LINE (2, 145)-(317, 197), 0, BF RETURN END SUB SUB LETTERS SHARED LEA$, LEB$, LEC$, LED$, LEE$, LEF$, LEG$ SHARED LEH$, LEI$, LEJ$, LEK$, LEL$, LEM$, LEN$ SHARED LEO$, LEP$, LEQ$, LER$, LES$, LET$, LEU$ SHARED LEV$, LEW$, LEX$, LEY$, LEZ$, LE0$, LE1$ SHARED LE2$, LE3$, LE4$, LE5$, LE6$, LE7$, LE8$ SHARED LE9$, LEPE$, LE$, LEUP$, LEDN$, LEQU$, LECM$, LESC$ LESC$ = "R6D1L6D1R6D1L6D1R6D1L6D1R6BU6" LEA$ = "D6U6R4D6U3L4U3BR6" LEB$ = "D6R4U6L4D3R4BU3BR2" LEC$ = "D6R4L4U6R4BR2" LED$ = "D6R2U1R1U1R1U2L1U1L1U1L2BR6" LEE$ = "D6R4L4U3R2L2U3R4BR2" LEF$ = "D6U3R2L2U3R4BR2" LEG$ = "R4L4D6R4U3L2R2BU3BR2" LEH$ = "D6U3R4D3U6BR2" LEI$ = "R4L2D6L2R4BU6BR2" LEJ$ = "R4L2D6L2BR4BU6BR2" LEK$ = "D6U3R2U1R1U2D2L1D1D1R1D2BR1BU6BR2" LEL$ = "D6R4BU6BR2" LEM$ = "D6U6R2D3U3R2D6U6BR2" LEN$ = "D6U6R1D2R1D2R1D2R1U6BR2" LEO$ = "R4L4D6R4U6BR2" LEP$ = "D6U3R4U3L4R4BR2" LEQ$ = "R4L4D6R4U1L1U1L1R1D1R1D1U6BR2" LER$ = "D6U3R1D1R1D1R1D1R1L1U1L1U1L1U1L1R4U3L4R4BR2" LES$ = "D3R4D3L4BU6R4BR2" LET$ = "R4L2D6U6R2BR2" LEU$ = "D6R4U6BR2" LEV$ = "D2R1D2R1D2U2R1U2R1U2BR2" LEW$ = "D6R2U3D3R2U6BR2" LEX$ = "D2R1D1R1D1R1D2BU6D2L1D1L1D1L1D2BR6BU6" LEY$ = "D3R4L2D3U3R2U3BR2" LEZ$ = "R4D2L1D1L1D1L1D2L1R4BU6BR2" LE0$ = "R3L3D4R3U4BR2" LE1$ = "BR1D4U4BR3" LE2$ = "R3D2L3D2R3BU4BR2" LE3$ = "R3D2L3R3D2L3R3BU4BR2" LE4$ = "D2R2D2U4BR2" LE5$ = "D2R3D2L3BU4R3BR2" LE6$ = "D2R2D2L2U2BU2BR4" LE7$ = "R2D4U4BR2" LE8$ = "D4R2U2L2R2U2L2R2BR2" LE9$ = "R2D4U2L2U2BR4" LEPE$ = "BD5BR1R1BR2BU5BR2" LE$ = "BR6" LEUP$ = "R1D1R1D1R1D2L1D1L1D1L1BR6BU6" LEDN$ = "BR4L1D1L1D1L1D2R1D1R1D1R1BR2BU6" LEQU$ = "R4D2L3D1BD2D1BR5BU6" LECM$ = "BD5BR1D1U1BR2BU5BR2" END SUB SUB MAV SHARED LEA$, LEC$, LEE$, LEG$ SHARED LEI$, LEK$, LEM$, LEN$ SHARED LEO$, LEP$, LER$, LES$, LET$ SHARED LEV$, LE1$ SHARED LE5$ SHARED LE9$, LE$ SHARED MAVRIK PALETTE 25, (256 ^ 2 * 5) + (256 * 1) + 63 PALETTE 26, (256 ^ 2 * 5) + (256 * 1) + 61 PALETTE 27, (256 ^ 2 * 5) + (256 * 1) + 59 PALETTE 28, (256 ^ 2 * 5) + (256 * 1) + 57 PALETTE 29, (256 ^ 2 * 5) + (256 * 1) + 55 PALETTE 30, (256 ^ 2 * 5) + (256 * 1) + 53 PALETTE 31, (256 ^ 2 * 5) + (256 * 1) + 51 PALETTE 32, (256 ^ 2 * 5) + (256 * 1) + 49 PALETTE 33, (256 ^ 2 * 5) + (256 * 1) + 47 PALETTE 34, (256 ^ 2 * 5) + (256 * 1) + 45 PALETTE 35, (256 ^ 2 * 5) + (256 * 1) + 43 PALETTE 36, (256 ^ 2 * 5) + (256 * 1) + 41 PALETTE 37, (256 ^ 2 * 5) + (256 * 1) + 39 PALETTE 38, (256 ^ 2 * 5) + (256 * 1) + 37 PALETTE 39, (256 ^ 2 * 5) + (256 * 1) + 35 PALETTE 40, (256 ^ 2 * 5) + (256 * 1) + 33 PALETTE 41, (256 ^ 2 * 5) + (256 * 1) + 31 PALETTE 42, (256 ^ 2 * 5) + (256 * 1) + 29 PALETTE 43, (256 ^ 2 * 5) + (256 * 1) + 27 PALETTE 44, (256 ^ 2 * 5) + (256 * 1) + 25 PALETTE 45, (256 ^ 2 * 5) + (256 * 1) + 23 PALETTE 46, (256 ^ 2 * 5) + (256 * 1) + 21 PALETTE 47, (256 ^ 2 * 5) + (256 * 1) + 19 PALETTE 48, (256 ^ 2 * 5) + (256 * 1) + 17 PALETTE 49, (256 ^ 2 * 5) + (256 * 1) + 15 PALETTE 50, (256 ^ 2 * 5) + (256 * 1) + 10 PALETTE 51, (256 ^ 2 * 10) + (256 * 1) + 10 PALETTE 52, (256 ^ 2 * 15) + (256 * 1) + 10 PALETTE 53, (256 ^ 2 * 20) + (256 * 1) + 10 PALETTE 54, (256 ^ 2 * 25) + (256 * 1) + 10 PALETTE 55, (256 ^ 2 * 30) + (256 * 1) + 10 PALETTE 56, (256 ^ 2 * 35) + (256 * 1) + 10 PALETTE 57, (256 ^ 2 * 40) + (256 * 1) + 10 PALETTE 58, (256 ^ 2 * 45) + (256 * 1) + 10 PALETTE 59, (256 ^ 2 * 50) + (256 * 1) + 10 PALETTE 60, (256 ^ 2 * 63) + (256 * 1) + 10 SLEEP 1: CLS DRAW "S8BM73,87C54" + LEM$ + LE$ + LEA$ + LE$ + LEV$ + LE$ + LEE$ + LE$ + LER$ + LE$ + LEI$ + LE$ + LEC$ + LE$ + LEK$ DRAW "S4BM129,107C54" + LEP$ + LER$ + LEO$ + LEG$ + LER$ + LEA$ + LEM$ + LEM$ + LEI$ + LEN$ + LEG$ DRAW "S8BM73,88C54" + LEM$ + LE$ + LEA$ + LE$ + LEV$ + LE$ + LEE$ + LE$ + LER$ + LE$ + LEI$ + LE$ + LEC$ + LE$ + LEK$ DRAW "S4BM129,108C54" + LEP$ + LER$ + LEO$ + LEG$ + LER$ + LEA$ + LEM$ + LEM$ + LEI$ + LEN$ + LEG$ DRAW "S8BM74,88C57" + LEM$ + LE$ + LEA$ + LE$ + LEV$ + LE$ + LEE$ + LE$ + LER$ + LE$ + LEI$ + LE$ + LEC$ + LE$ + LEK$ DRAW "S4BM130,108C57" + LEP$ + LER$ + LEO$ + LEG$ + LER$ + LEA$ + LEM$ + LEM$ + LEI$ + LEN$ + LEG$ DRAW "BM80,110C40R40BR84R40" DRAW "BM81,111C30R40BR84R40" COLOR 30: LOCATE 10, 15: PRINT "  " DRAW "BM134,74S4C54" + LE1$ + LE9$ + LE$ + LE$ + LE$ + LE$ + LE$ + LE$ + LE$ + LE9$ + LE5$ DRAW "BM135,75S4C57" + LE1$ + LE9$ + LE$ + LE$ + LE$ + LE$ + LE$ + LE$ + LE$ + LE9$ + LE5$ GET (71, 71)-(251, 117), MAVRIK% FOR X = 70 TO 254 STEP 4: FOR Y = 70 TO 115 C = POINT(X, Y) IF C = 54 THEN PSET (X, Y), 58 IF C = 57 THEN PSET (X, Y), 60 IF C = 40 THEN PSET (X, Y), 35 IF C = 30 THEN PSET (X, Y), 12 C = POINT(X - 4, Y) IF C = 58 THEN PSET (X - 4, Y), 54 IF C = 60 THEN PSET (X - 4, Y), 57 IF C = 35 THEN PSET (X - 4, Y), 40 IF C = 12 THEN PSET (X - 4, Y), 30 NEXT Y, X FOR X = 254 TO 70 STEP -4: FOR Y = 70 TO 115 C = POINT(X, Y) IF C = 54 THEN PSET (X, Y), 58 IF C = 57 THEN PSET (X, Y), 60 IF C = 40 THEN PSET (X, Y), 35 IF C = 30 THEN PSET (X, Y), 12 C = POINT(X + 4, Y) IF C = 58 THEN PSET (X + 4, Y), 54 IF C = 60 THEN PSET (X + 4, Y), 57 IF C = 35 THEN PSET (X + 4, Y), 40 IF C = 12 THEN PSET (X + 4, Y), 30 NEXT Y, X X1 = 1 X2 = 318 DO LINE (X1 - 1, 0)-(X1 - 1, 199), 24 LINE (X1, 0)-(X1, 199), 15 LINE (X2 + 1, 0)-(X2 + 1, 199), 24 LINE (X2, 0)-(X2, 199), 15 FOR I = 1 TO 100: NEXT I LINE (X1 - 1, 0)-(X1 - 1, 199), 0 LINE (X1, 0)-(X1, 199), 0 LINE (X2 + 1, 0)-(X2 + 1, 199), 0 LINE (X2, 0)-(X2, 199), 0 X1 = X1 + 1: X2 = X2 - 1 LOOP UNTIL X1 = 161 Y = 0: COL = 38 DO LINE (0, Y)-(319, Y + 16), COL, BF COL = COL + 1: Y = Y + 16 LOOP UNTIL COL > 49 DRAW "BM117,88S8C50" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM118,89S8C51" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM119,90S8C52" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM118,91S8C53" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM117,92S8C54" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM118,93S8C55" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM119,94S8C56" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM118,95S8C57" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM117,96S8C58" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM118,97S8C59" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I DRAW "BM119,98S8C60" + LEP$ + LER$ + LEE$ + LES$ + LEE$ + LEN$ + LET$ + LES$: FOR I = 1 TO 900: NEXT I SLEEP 1 END SUB SUB MouseDriver (ax%, BX%, cx%, dx%) DEF SEG = VARSEG(mouse$) mouse% = SADD(mouse$) CALL Absolute(ax%, BX%, cx%, dx%, mouse%) END SUB SUB MOUSEHIDE ax% = 2 MouseDriver ax%, 0, 0, 0 END SUB FUNCTION MouseInit% ax% = 0 MouseDriver ax%, 0, 0, 0 MouseInit% = ax% END FUNCTION SUB MOUSEPUT (X%, Y%) ax% = 4 cx% = X% dx% = Y% MouseDriver ax%, 0, cx%, dx% END SUB SUB MOUSERANGE (X1%, y1%, X2%, y2%) ax% = 7 cx% = X1% dx% = X2% MouseDriver ax%, 0, cx%, dx% ax% = 8 cx% = y1% dx% = y2% MouseDriver ax%, 0, cx%, dx% END SUB SUB MOUSESHOW ax% = 1 MouseDriver ax%, 0, 0, 0 END SUB SUB MOUSESTATUS (LB%, RB%, XM%, YM%) ax% = 3 MouseDriver ax%, BX%, cx%, dx% LB% = ((BX% AND 1) <> 0) RB% = ((BX% AND 2) <> 0) XM% = cx% YM% = dx% END SUB SUB PALET SHARED COL, PL, R, G, B PL = COL: PALL$ = "OK" R = 20: G = 30: B = 40 DO SELECT CASE INKEY$ CASE "R" R = R + 1 CASE "E" R = R - 1 CASE "G" G = G + 1 CASE "F" G = G - 1 CASE "B" B = B + 1 CASE "V" B = B - 1 CASE "X" EXIT DO END SELECT IF R = 64 THEN R = 63 IF R = -1 THEN R = 0 IF G = 64 THEN G = 63 IF G = -1 THEN G = 0 IF B = 64 THEN B = 63 IF B = -1 THEN B = 0 MOUSEHIDE PALETTE PL, (256 ^ 2 * B) + (256 * G) + R LOCATE 23, 2: PRINT "B:"; B; "G:"; G; "R:"; R; " " MOUSESHOW IF YM% > 174 AND YM% < 184 AND XM% / 2 > 279 AND XM% / 2 < 312 AND LB% = -1 THEN MOUSEHIDE LINE (2, 145)-(317, 197), 0, BF WINDRAW MOUSEPUT 160, 199 MOUSESHOW RETURN END IF LOOP OPEN "C:\PROPAL.PAL" FOR APPEND AS #12 PRINT #12, PL; ","; B; ","; G; ","; R CLOSE #12 PALETTE PL, (256 ^ 2 * B) + (256 * G) + R COLOR PL COL = PL END SUB SUB WINDRAW SHARED LEA$, LEB$, LEC$, LED$, LEE$, LEF$, LEG$ SHARED LEH$, LEI$, LEJ$, LEK$, LEL$, LEM$, LEN$ SHARED LEO$, LEP$, LEQ$, LER$, LES$, LET$, LEU$ SHARED LEV$, LEW$, LEX$, LEY$, LEZ$, LE0$, LE1$ SHARED LE2$, LE3$, LE4$, LE5$, LE6$, LE7$, LE8$ SHARED LE9$, LEPE$, LE$, LEUP$, LEDN$, LEQU$ LINE (0, 0)-(319, 141), 134, B LINE (1, 1)-(318, 140), 14, B LINE (0, 143)-(319, 199), 134, B LINE (1, 144)-(318, 198), 14, B ' ----- DRAW "C14S4BM5,150" + LEC$ + LEL$ + LES$ + LE$ + LE$ + LE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM5,158" + LEP$ + LEA$ + LEL$ + LEE$ + LET$ + LET$ + LEE$ + LE$ + LEO$ DRAW "C14S4BM5,166" + LEF$ + LEI$ + LEL$ + LEL$ + LE$ + LE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM65,150" + LEP$ + LEA$ + LEI$ + LEN$ + LET$ + LE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM65,158" + LES$ + LEQ$ + LEU$ + LEA$ + LER$ + LEE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM65,166" + LEC$ + LEU$ + LEB$ + LEE$ + LE$ + LE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM130,150" + LEH$ + LEO$ + LEL$ + LEL$ + LEO$ + LEW$ + LE$ + LE$ + LEO$ DRAW "C14S4BM130,158" + LEP$ + LEO$ + LEI$ + LEN$ + LET$ + LE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM130,166" + LEZ$ + LEO$ + LEO$ + LEM$ + LE$ + LE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM195,150" + LEC$ + LEI$ + LER$ + LEC$ + LEL$ + LEE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM195,158" + LEE$ + LEL$ + LEL$ + LEI$ + LEP$ + LES$ + LEE$ + LE$ + LEO$ DRAW "C14S4BM195,166" + LET$ + LEE$ + LEX$ + LET$ + LE$ + LE$ + LE$ + LE$ + LEO$ DRAW "C14S4BM255,150" + LES$ + LEP$ + LEH$ + LEE$ + LER$ + LEE$ + LE1$ + LE$ + LEO$ DRAW "C14S4BM255,158" + LES$ + LEP$ + LEH$ + LEE$ + LER$ + LEE$ + LE2$ + LE$ + LEO$ DRAW "C14S4BM255,166" + LEU$ + LEN$ + LED$ + LEO$ + LE$ + LE$ + LE$ + LE$ + LEO$ C = 16 FOR X = 2 TO 314 STEP 1.5 COLOR C LINE (X, 186)-(X + 2, 194), C, BF C = C + 1 NEXT X MOUSEPUT 160, 199 MOUSESHOW END SUB SUB ZOOM (XM%, YM%, COL, XCOL) MOUSEHIDE ZXZ% = XM% / 2 ZYZ% = YM% REDIM LZOM%(23000) GET (1, 1)-(318, 140), LZOM% REDIM ZOOMM(26, 26) FOR CPX = 1 TO 25 FOR CPY = 1 TO 25 ZOOMM(CPX, CPY) = POINT((XM% / 2) + CPX, YM% + CPY) NEXT: NEXT LINE (3, 3)-(128, 128), 0, BF LINE (3, 3)-(128, 128), 8, B FOR X = 3 TO 128 STEP 5 LINE (X, 3)-(X, 128), 8 NEXT FOR Y = 3 TO 128 STEP 5 LINE (3, Y)-(128, Y), 8 NEXT XX = 0: YY = 0 FOR X = 3 TO 123 STEP 5 XX = XX + 1 FOR Y = 3 TO 123 STEP 5 YY = YY + 1 PAINT (X + 1, Y + 1), ZOOMM(XX, YY), 8 PSET (140 + XX, 5 + YY), ZOOMM(XX, YY) NEXT YY = 0 NEXT COLOR 15: LOCATE 23, 2: PRINT "COLOR: POINT: DONE" LOCATE 23, 8: COLOR COL: PRINT COL DO MOUSESTATUS LB%, RB%, XM%, YM%: MOUSESHOW IF RB% = -1 AND XM% / 2 > 3 AND XM% / 2 < 128 AND YM% > 3 AND YM% < 128 THEN IF POINT(XM% / 2, YM%) = 8 THEN GOTO 13 MOUSEHIDE PAINT (XM% / 2, YM%), COL, 8 CPX = 0: CPY = 0 FOR ZX = 4 TO 124 STEP 5 FOR ZY = 4 TO 124 STEP 5 CPY = CPY + 1 ZOOMM(CPX, CPY) = POINT(ZX, ZY) NEXT CPX = CPX + 1: CPY = 0 NEXT XX = 0: YY = 0 FOR X = 3 TO 123 STEP 5 XX = XX + 1 FOR Y = 3 TO 123 STEP 5 YY = YY + 1 PSET (141 + XX, 5 + YY), ZOOMM(XX, YY) NEXT YY = 0 NEXT 13 END IF IF YM% > 174 AND YM% < 184 AND XM% / 2 > 279 AND XM% / 2 < 312 AND LB% = -1 THEN MOUSEHIDE LINE (2, 145)-(317, 197), 0, BF WINDRAW MOUSEPUT 160, 199 MOUSESHOW EXIT DO END IF IF YM% > 185 AND YM% < 195 AND XM% / 2 > 2 AND XM% / 2 < 317 AND LB% = -1 THEN IF POINT(XM% / 2, YM%) = 8 THEN GOTO 12 MOUSEHIDE PSET (XCOL, 184), 0: PSET (XCOL, 196), 0 COL = POINT(XM% / 2, YM%): LOCATE 23, 8: COLOR COL: PRINT COL XCOL = XM% / 2 PSET (XCOL, 184), 15: PSET (XCOL, 196), 15 FILL = 0 MOUSESHOW 12 END IF IF LB% = -1 AND XM% / 2 > 3 AND XM% / 2 < 128 AND YM% > 3 AND YM% < 128 THEN MOUSEHIDE CPOI = POINT(XM% / 2, YM%) COLOR CPOI: LOCATE 23, 21: PRINT CPOI MOUSESHOW END IF LOOP MOUSEHIDE REDIM RPLC%(5000) GET (141, 6)-(165, 30), RPLC% PUT (1, 1), LZOM%, PSET PUT (ZXZ% + 1, ZYZ% + 1), RPLC%, PSET ERASE LZOM% ERASE RPLC% ERASE ZOOMM MOUSESHOW END SUB