Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE FUNCTION MouseDoubleClick% (Delay%, Button%, m3%, m4%)
- DECLARE FUNCTION MouseInit% ()
- TYPE Register 'for CALL INTERRUPT
- ax AS INTEGER
- bx AS INTEGER
- cx AS INTEGER
- dx AS INTEGER
- bp AS INTEGER
- si AS INTEGER
- di AS INTEGER
- flags AS INTEGER
- END TYPE
- DECLARE SUB Interrupt (intnum AS INTEGER, inreg AS Register, outreg AS Register)
- DECLARE SUB MouseDriver (m0%, m1%, m2%, m3%)
- DECLARE FUNCTION MouseInit% ()
- DECLARE SUB MouseOn ()
- DECLARE SUB MouseOff ()
- DECLARE FUNCTION GETT$ (P%)
- DEFINT A-I, K-W
- DEFSTR J
- DEFCUR X-Z
- CONST Y = 1
- Mouse = MouseInit
- CO$ = COMMAND$
- DEFINT A-U
- DEFCUR V-Z
- DEFSTR J
- CONST PI = 3.141593
- RANDOMIZE TIMER
- BLACK = 0: BLUE = 1: GREEN = 2: CYAN = 3: RED = 4: PINK = 5
- BROWN = 6: WHITE = 7: GREY = 8: LBLUE = 9: LGREEN = 10: LCYAN = 11
- LRED = 12: LPINK = 13: YELLOW = 14: BWHITE = 15
- Ts = 34
- DIM SHARED Place(Ts + 3)
- DIM SHARED PLlst(Ts + 3)
- DIM SHARED Datan(Ts + 3) AS STRING
- DIM SHARED JNames(Ts + 3), Tipe(Ts + 3)
- DIM SHARED JLNames(10, 32) AS STRING
- DIM SHARED Pln
- DIM SHARED J1 AS STRING * 1
- DIM SHARED T4 AS STRING * 4
- DIM SHARED T24 AS STRING * 24
- DIM SHARED CHANGE
- IF MID$(UCASE$(CO$), 1, 1) = "Y" THEN Jn = MID$(UCASE$(CO$), 2, 1): Pln = VAL(MID$(UCASE$(CO$), 3, 1)): CO$ = "Y"
- IF MID$(UCASE$(CO$), 1, 1) = "G" THEN Jn = MID$(UCASE$(CO$), 2, 1): Pln = VAL(MID$(UCASE$(CO$), 3, 1)): God = 1: CO$ = "Y"
- ML = CSRLIN
- IF UCASE$(CO$) <> "Y" THEN WIDTH 80, 43: CLS : ML = 43
- N = 0
- L = -1
- R = 1
- U = -1
- D = 1
- M = 0
- 'tipe is type to be edited
- '0 is fill stuff
- '1 is flip flop
- '2 is flip flop but fill leaves this alone
- '3 is number from 0 to 2 billion somthing.
- '4 is same as 3 but fill sends it to 199
- '5 is same as 3 bus fill sends it to 35536
- '6 is same as 3 but fill sends it to 2000200600
- '7 is same as 3 but fill leves this alone
- '8 is uneditable
- '9 is level
- '10 is special 4 way flip flopper
- '11 is string
- Tipe(0) = 11
- Tipe(1) = 4
- Tipe(2) = 5
- Tipe(3) = 2
- Tipe(4) = 2
- Tipe(5) = 2
- Tipe(6) = 2
- Tipe(7) = 2
- Tipe(8) = 2
- Tipe(9) = 1
- Tipe(10) = 1
- Tipe(11) = 1
- Tipe(12) = 1
- Tipe(13) = 1
- Tipe(14) = 1
- Tipe(15) = 1
- Tipe(16) = 1
- Tipe(17) = 3
- Tipe(18) = 3
- Tipe(19) = 3
- Tipe(20) = 3
- Tipe(21) = 6
- Tipe(22) = 6
- Tipe(23) = 6
- Tipe(24) = 6
- Tipe(25) = 10
- Tipe(26) = 8
- Tipe(27) = 8
- Tipe(28) = 9
- Tipe(29) = 7
- Tipe(30) = 7
- Tipe(31) = 7
- Tipe(32) = 7
- Tipe(33) = 7
- Tipe(34) = 1
- Place(0) = 1
- Place(1) = 83
- Place(2) = 87
- Place(3) = 119
- Place(4) = 123
- Place(5) = 127
- Place(6) = 131
- Place(7) = 135
- Place(8) = 139
- Place(9) = 144
- Place(10) = 175
- Place(11) = 179
- Place(12) = 183
- Place(13) = 187
- Place(14) = 191
- Place(15) = 195
- Place(16) = 199
- Place(17) = 203
- Place(18) = 207
- Place(19) = 211
- Place(20) = 215
- Place(21) = 219
- Place(22) = 223
- Place(23) = 227
- Place(24) = 231
- Place(25) = 243
- Place(26) = 42
- Place(27) = 43
- Place(28) = 41
- Place(29) = 98
- Place(30) = 114
- Place(31) = 102
- Place(32) = 106
- Place(33) = 110
- Place(34) = 205
- PLlst(0) = 23
- PLlst(1) = 3
- PLlst(2) = 3
- PLlst(3) = 0
- PLlst(4) = 0
- PLlst(5) = 0
- PLlst(6) = 0
- PLlst(7) = 0
- PLlst(8) = 0
- PLlst(9) = 0
- PLlst(10) = 0
- PLlst(11) = 0
- PLlst(12) = 0
- PLlst(13) = 0
- PLlst(14) = 0
- PLlst(15) = 0
- PLlst(16) = 0
- PLlst(17) = 3
- PLlst(18) = 3
- PLlst(19) = 3
- PLlst(20) = 3
- PLlst(21) = 3
- PLlst(22) = 3
- PLlst(23) = 3
- PLlst(24) = 3
- PLlst(25) = 0
- PLlst(26) = 0
- PLlst(27) = 0
- PLlst(28) = 0
- PLlst(29) = 3
- PLlst(30) = 3
- PLlst(31) = 3
- PLlst(32) = 3
- PLlst(33) = 3
- PLlst(34) = 0
- JNames(0) = "Name of the game"
- JNames(1) = "Health"
- JNames(2) = "Armor"
- JNames(3) = "a Blue Key Card"
- JNames(4) = "a Yellow Key Card"
- JNames(5) = "a Red Key Card"
- JNames(6) = "a Blue Skull Key"
- JNames(7) = "a Yellow Skull Key"
- JNames(8) = "a Red Skull Key"
- JNames(9) = "a Backpack"
- JNames(10) = "the Pistol"
- JNames(11) = "the Shotgun"
- JNames(12) = "the Chain Gun"
- JNames(13) = "the Rocket Launcher"
- JNames(14) = "the Plasma Rifle"
- JNames(15) = "the BFG-9000"
- JNames(16) = "the Chainsaw"
- JNames(17) = "Current Bullets"
- JNames(18) = "Current Shells"
- JNames(19) = "Current Cells"
- JNames(20) = "Current Rockets"
- JNames(21) = "Max Bullets"
- JNames(22) = "Max Shells"
- JNames(23) = "Max Cells"
- JNames(24) = "Max Rockets"
- JNames(25) = "Specials"
- JNames(26) = "Episode"
- JNames(27) = "Level"
- JNames(28) = "Skill"
- JNames(29) = "Bezerk Level"
- JNames(30) = "Lite Amp Level"
- JNames(31) = "Partial Invisibility Value"
- JNames(32) = "Radiation Protection Value"
- JNames(33) = "Invulnerability Value"
- JNames(34) = "the Super Shotgun"
- JENAMES(1) = "Knee Deep in the Dead"
- JENAMES(2) = "Shores of Hell"
- JENAMES(3) = "Inferno"
- JLNames(1, 1) = "Hangar\Entryway"
- JLNames(1, 2) = "Nuclear Plant\Underhalls"
- JLNames(1, 3) = "Toxin Refinery\The Gantlet"
- JLNames(1, 4) = "Command Control\The Focus"
- JLNames(1, 5) = "Phobos Lab\The Waste Tunnels"
- JLNames(1, 6) = "Central Processing\The Crusher"
- JLNames(1, 7) = "Computer Station\Dead Simple"
- JLNames(1, 8) = "Phobos Anomaly\Tricks and Traps"
- JLNames(1, 9) = "Military Base\The Pit"
- JLNames(1, 10) = "Refueling Base"
- JLNames(1, 11) = "`O` of Destruction!"
- JLNames(1, 12) = "The Factory"
- JLNames(1, 13) = "Downtown"
- JLNames(1, 14) = "The Inmost Dens"
- JLNames(1, 15) = "Industrial Zone"
- JLNames(1, 16) = "Suburbs"
- JLNames(1, 17) = "Tenements"
- JLNames(1, 18) = "The Courtyard"
- JLNames(1, 19) = "The Citadel"
- JLNames(1, 20) = "Gotcha!"
- JLNames(1, 21) = "Nirvana"
- JLNames(1, 22) = "The Catacombs"
- JLNames(1, 23) = "Barrels o` Fun"
- JLNames(1, 24) = "The Chasm"
- JLNames(1, 25) = "Bloodfalls"
- JLNames(1, 26) = "The Abandoned Mines"
- JLNames(1, 27) = "Monster Condo"
- JLNames(1, 28) = "The Spirit World"
- JLNames(1, 29) = "The Living End"
- JLNames(1, 30) = "Icon of Sin"
- JLNames(1, 31) = "Wolfenstein"
- JLNames(1, 32) = "Grosse"
- JLNames(2, 1) = "Deimos Anamaly"
- JLNames(2, 2) = "Containment Area"
- JLNames(2, 3) = "Definery"
- JLNames(2, 4) = "Deimos Lab"
- JLNames(2, 5) = "Command Center"
- JLNames(2, 6) = "Halls of the Damned"
- JLNames(2, 7) = "Spawning Vats"
- JLNames(2, 8) = "Tower of Babel"
- JLNames(2, 9) = "Fortress of Mystery"
- JLNames(3, 1) = "Hell Keep"
- JLNames(3, 2) = "Pandamonium"
- JLNames(3, 3) = "Slough of Despair"
- JLNames(3, 4) = "House of Pain"
- JLNames(3, 5) = "Unholy Cathedral"
- JLNames(3, 6) = "Mt. Erebus"
- JLNames(3, 7) = "Gate to Limbo"
- JLNames(3, 8) = "Dis"
- JLNames(3, 9) = "Warrnes"
- JSNAMES(0) = "I'm Too Young to Die"
- JSNAMES(1) = "Hey, Not Too Rough"
- JSNAMES(2) = "Hurt Me Plenty"
- JSNAMES(3) = "Ultra-Violence"
- JSNAMES(4) = "Nightmare!"
- JSNAMES(5) = "Pray To God!"
- JDO(0) = "don't have"
- JDO(1) = "have"
- JSPE(0) = "You don't have God Mode or No Clipping."
- JSPE(1) = "You have No Clipping but not God Mode. "
- JSPE(2) = "You have God Mode but not No Clipping. "
- JSPE(3) = "You have both God Mode and No Clipping."
- CHANGE = 276
- NOTHER:
- CLOSE
- H = 1
- IF UCASE$(CO$) <> "Y" THEN
- IF Mouse = Y THEN MouseOn
- PRINT "DoomSave 1.9 By Andy Bay"
- FOR GAME = 0 TO 5
- 'NAME
- Jn = MID$(STR$(GAME), 2, 1)
- JNM = "DOOMSAV" + Jn + ".DSG"
- OPEN JNM FOR RANDOM AS #1 LEN = H'24
- IF LOF(1) <> 0 THEN
- P = 0
- FOR P2 = 1 TO PLlst(P)
- GET #1, P2, J1
- 'PRINT "K"; J1; "K";
- Datan(P) = Datan(P) + J1
- IF J1 = CHR$(0) THEN EXIT FOR
- NEXT
- PRINT GAME; Datan(P)
- END IF
- Datan(P) = ""
- CLOSE
- NEXT
- Jn = ""
- END IF
- IF Mouse = N THEN INPUT "Which saved game do you want to edit (0-5)"; Jn
- IF Mouse = Y THEN
- IF Jn = "" THEN
- PRINT "Which saved game do you want to edit (0-5)? ";
- DO
- Jn = INKEY$
- IF (Jn >= "0" AND Jn < "6") THEN PRINT Jn: EXIT DO
- IF Jn = CHR$(13) THEN PRINT "": EXIT DO
- m1 = 3: MouseDriver m1, m2, m3, m4
- IF m2 = 1 OR m2 = 3 THEN
- IF m4 \ 8 > 0 AND m4 \ 8 < 7 THEN Jn = MID$(STR$((m4 \ 8) - 1), 2, 1): PRINT Jn: EXIT DO
- END IF
- LOOP
- END IF
- END IF
- IF Jn < "0" OR Jn > "5" THEN Jn = "0"
- JNM = "DOOMSAV" + Jn + ".DSG"
- 'PRINT JNM
- IF Pln = 0 THEN
- IF Mouse = N THEN INPUT "Witch player (1-4)"; Pln
- IF Mouse = Y THEN
- PRINT "Witch player (1,2,3,4)? ";
- DO
- Jn = INKEY$
- Pln = VAL(Jn)
- IF (Pln > 0 AND Pln < 5) THEN PRINT Pln: EXIT DO
- IF Jn = CHR$(13) THEN Pln = 1: PRINT " ": EXIT DO
- m1 = 3: MouseDriver m1, m2, m3, m4
- IF m2 = 1 OR m2 = 3 THEN
- m3 = m3 \ 8
- m4 = m4 \ 8
- Pln = VAL(CHR$(SCREEN(m4 + 1, m3 + 1, 0)))
- IF Pln > 0 AND Pln < 5 THEN PRINT Pln: EXIT DO
- END IF
- LOOP
- END IF
- END IF
- MouseOff
- IF Pln < 1 OR Pln > 4 THEN Pln = 1
- IF UCASE$(CO$) <> "Y" THEN CLS
- H = 1
- OPEN JNM FOR RANDOM AS #1 LEN = H'24
- 'GET VERSION NUMBER
- GET #1, 33, J1
- JVER = J1
- GET #1, 34, J1
- JVER = JVER + J1
- GET #1, 35, J1
- JVER = JVER + J1
- Ver = VAL(JVER)
- IF VAL(JVER) <= 101 THEN
- LOCATE ML, 1
- PRINT "USING version 1.1 OR LESS, UNKOWN FOR LESS";
- FOR Place = 1 TO 33
- Place(Place) = Place(Place) - 4
- NEXT
- END IF
- IF VAL(JVER) = 102 THEN
- LOCATE ML, 1
- PRINT "USING version 1.2";
- END IF
- IF VAL(JVER) = 103 THEN
- LOCATE ML, 1
- PRINT "USING version 1.3: Never used it assuming same as 1.2";
- END IF
- IF VAL(JVER) = 104 THEN
- LOCATE ML, 1
- PRINT "USING version 1.4";
- 'same as 1.2
- END IF
- IF VAL(JVER) = 105 THEN
- LOCATE ML, 1
- PRINT "USING version 1.5";
- FOR Place = 17 TO 25
- Place(Place) = Place(Place) + 4
- NEXT
- Ts = Ts + 1
- END IF
- IF VAL(JVER) >= 106 THEN
- LOCATE ML, 1
- IF Ver = 106 THEN PRINT "USING version 1.666";
- IF Ver = 107 THEN PRINT "USING version 1.7(a)";
- IF Ver = 108 THEN PRINT "USING version 1.8";
- IF Ver = 109 THEN PRINT "USING version 1.9";
- IF Ver > 109 THEN PRINT "USING version 1.666 to 1.9 format";
- FOR Place = 1 TO 25
- Place(Place) = Place(Place) + 2
- NEXT
- Place(9) = Place(9) - 1
- FOR Place = 30 TO 33
- Place(Place) = Place(Place) + 2
- NEXT
- FOR Place = 17 TO 25
- Place(Place) = Place(Place) + 4
- NEXT
- CHANGE = CHANGE + 4
- Ts = Ts + 1
- END IF
- ' read data
- FOR P = 0 TO Ts
- SELECT CASE Tipe(P)
- CASE 1 TO 2 'Flip Flop
- Datan(P) = GETT$(P)
- IF UCASE$(CO$) <> "Y" THEN LOCATE P + 1, 1
- IF VAL(Datan(P)) > 1 OR VAL(Datan(P)) < 0 THEN WIDTH 80, 25: PRINT "NO PLAYER"; Pln; P; Tipe(P): END
- IF UCASE$(CO$) <> "Y" THEN PRINT P; "You "; JDO(VAL(Datan(P))); " "; JNames(P);
- CASE 3 TO 7 'Ammo and Stats
- Datan(P) = GETT$(P)
- IF CO$ <> "Y" THEN
- LOCATE P + 1, 1
- IF P < 25 THEN PRINT P; JNames(P); " has"; Datan(P)
- IF P > 25 THEN PRINT P; JNames(P); " is"; Datan(P)
- END IF
- CASE IS = 8'UnEditable
- 'EPISODE
- Datan(P) = GETT$(P)
- IF UCASE$(CO$) <> "Y" AND P = 26 THEN LOCATE P + 1, 1: PRINT P; Datan(P); " "; JENAMES(VAL(Datan(P)));
- 'LEVEL
- IF P = 27 AND UCASE$(CO$) <> "Y" THEN LOCATE P + 1, 1: PRINT P; Datan(27); " "; JLNames(VAL(Datan(26)), VAL(Datan(27)));
- CASE IS = 9'Skill
- Datan(P) = GETT$(P)
- IF UCASE$(CO$) <> "Y" THEN LOCATE P + 1, 1: PRINT P; Datan(P); " "; JSNAMES(VAL(Datan(P)));
- CASE IS = 10'Four way Flip Flop
- Datan(P) = GETT$(P)
- IF UCASE$(CO$) <> "Y" THEN LOCATE P + 1, 1: PRINT P; JSPE(VAL(Datan(P)));
- CASE IS = 11 'Strings(name of game)
- FOR P2 = 1 TO PLlst(P)
- GET #1, P2, J1
- Datan(P) = Datan(P) + J1
- IF J1 = CHR$(0) THEN EXIT FOR
- NEXT
- IF UCASE$(CO$) <> "Y" THEN LOCATE P + 1, 1: PRINT P; JNames(P); "="; Datan(P),
- END SELECT
- NEXT
- IF UCASE$(CO$) = "Y" THEN GOSUB QUICKY
- LOCATE Ts + 1, 1
- PRINT Ts; "Give Max of Everything Except Keys and Bonuses"
- LOCATE Ts + 2, 1
- PRINT "-1 to Save and End"
- LOCATE Ts + 3, 1
- PRINT "-2 To End Without Saving"
- IF Mouse = Y THEN DO: m1 = 3: MouseDriver m1, m2, m3, m4: LOOP UNTIL m2 = 0
- DO
- LOCATE Ts + 4
- PRINT SPACE$(80);
- LOCATE Ts + 5, 1
- PRINT SPACE$(80);
- LOCATE Ts + 4, 1
- IF Mouse = N THEN INPUT "Edit Which One"; Ed
- IF Mouse = Y THEN
- PRINT "Edit Which One? ";
- MouseOn
- J = ""
- DO
- Jn = INKEY$
- IF Jn = CHR$(8) AND LEN(J) > 0 THEN J = MID$(J, 1, LEN(J) - 1): LOCATE Ts + 4, 1: PRINT "Edit Which One? "; J; " ": LOCATE Ts + 4, 1: PRINT "Edit Which One? "; J;
- IF (Jn >= "0" AND Jn <= "9") OR Jn = "-" THEN J = J + Jn: PRINT Jn;
- IF Jn = CHR$(13) THEN Ed = VAL(J): PRINT Jn; Ed: EXIT DO
- m1 = 3: MouseDriver m1, m2, m3, m4
- IF m2 = 1 OR m2 = 3 THEN
- Ed = m4 \ 8
- IF Ed > Ts THEN Ed = -(Ed - Ts)
- PRINT Ed: EXIT DO
- END IF
- LOOP
- MouseOff
- END IF
- IF Ed = -1 THEN EXIT DO
- IF Ed = -2 THEN GOTO ENDER
- P = Ed
- IF Tipe(Ed) = 11 THEN
- INPUT "New name"; Datan(Ed)
- LOCATE P + 1, 1
- PRINT SPACE$(80)
- LOCATE P + 1, 1
- PRINT P; JNames(P); "="; Datan(P),
- END IF
- IF Tipe(Ed) = 1 OR Tipe(Ed) = 2 THEN
- Datan(P) = STR$(1 - VAL(Datan(P)))
- IF VAL(Datan(P)) < 0 THEN Datan(P) = STR$(0)
- LOCATE P + 1, 1
- PRINT SPACE$(80);
- LOCATE P + 1, 1
- PRINT P; "You "; JDO(VAL(Datan(P))); " "; JNames(P);
- IF P = 11 AND Ver = 105 THEN Datan(Ed) = "2": LOCATE 34, 1: PRINT 34; JNames(P); " is "; Datan(P)
- IF Mouse = Y THEN DO: m1 = 3: MouseDriver m1, m2, m3, m4: LOOP UNTIL m2 = 0
- END IF
- IF Tipe(Ed) >= 3 AND Tipe(Ed) <= 7 THEN
- DAT$ = Datan(P)
- LOCATE Ts + 4, 20
- PRINT " OTHTTHMTHBTH"
- PRINT " "; Datan(Ed)
- INPUT "(-1 gives max, -2 gives max + 200k)New value"; Datan(Ed)
- IF Datan(Ed) <> "" THEN Datan(Ed) = " " + Datan(Ed)
- LOCATE Ts + 4
- PRINT SPACE$(80);
- PRINT SPACE$(80);
- PRINT SPACE$(80);
- IF Datan(P) = " -1" THEN Datan(P) = " 2000000600"
- IF Datan(P) = " -2" THEN Datan(P) = " 2000200600"
- IF MID$(Datan(P), 1, 1) = "-" THEN Datan(P) = "0"
- IF Datan(P) = "" THEN Datan(P) = DAT$
- LOCATE P + 1, 1
- PRINT SPACE$(80);
- LOCATE P + 1, 1
- IF Ed < 25 THEN PRINT P; JNames(P); " has"; Datan(P)
- IF Ed > 25 THEN PRINT P; JNames(P); " is"; Datan(P)
- END IF
- IF Tipe(Ed) = 10 THEN
- 'INPUT "(0=NONE, 1=NOCLIP, 2=GOD, 3=BOTH) New value";
- D = VAL(Datan(P)) + 1
- IF D = 4 THEN D = 0
- Datan(P) = STR$(D)
- LOCATE P + 1, 1
- PRINT SPACE$(80);
- LOCATE P + 1, 1
- PRINT P; JSPE(VAL(Datan(P)));
- IF Mouse = Y THEN DO: m1 = 3: MouseDriver m1, m2, m3, m4: LOOP UNTIL m2 = 0
- END IF
- IF Tipe(Ed) = 9 THEN
- INPUT "What skill level"; Datan(Ed)
- P = Ed
- LOCATE P + 1, 1
- PRINT SPACE$(80);
- LOCATE P + 1, 1
- PRINT P; VAL(Datan(Ed)); JSNAMES(VAL(Datan(Ed)))
- END IF
- IF Ed = Ts THEN
- INPUT "Want God Mode"; A$
- IF UCASE$(MID$(A$, 1, 1)) = "Y" THEN God = Y ELSE God = N
- FOR P = 0 TO Ts - 1
- SELECT CASE Tipe(P)
- CASE 1
- Datan(P) = "1"
- IF P = 11 AND Ver = 105 THEN Datan(P) = "2"
- CASE 3
- Datan(P) = "2000000600"
- CASE 4
- Datan(P) = "199"
- CASE 5
- Datan(P) = "35536"
- CASE 6
- Datan(P) = "2000200600"
- CASE 10
- IF God = Y THEN Datan(P) = "2"
- END SELECT
- NEXT
- FOR P = 0 TO Ts
- SELECT CASE Tipe(P)
- CASE IS = 1'Flip Flop
- LOCATE P + 1, 1
- PRINT P; "You "; JDO(VAL(Datan(P))); " "; JNames(P)
- CASE 3 TO 6 'Ammo and Stats
- LOCATE P + 1, 1
- IF P < 25 THEN PRINT P; JNames(P); " has "; Datan(P)
- IF P > 25 THEN PRINT P; JNames(P); " is "; Datan(P)
- CASE IS = 10'Four way Flip Flop
- LOCATE P + 1, 1: PRINT P; JSPE(VAL(Datan(P)));
- END SELECT
- NEXT
- END IF
- LOOP
- SAVE:
- 'NAME
- P = 0
- FOR P2 = 1 TO PLlst(P)
- J1 = MID$(Datan(P), P2, 1)
- IF P2 > LEN(Datan(P)) THEN J1 = CHR$(0)
- PUT #1, P2, J1
- NEXT
- 'EVERYTHING ELSE
- FOR P = 1 TO Ts - 1
- VALU = VAL(Datan(P))
- PL(0) = 0
- PL(1) = 0
- PL(2) = 0
- PL(3) = 0
- PL(4) = 0
- 'VALU = VALU + 1
- FOR P2 = PLlst(P) TO 0 STEP -1
- AGAIN: IF VALU >= (256 ^ P2) THEN PL(P2) = PL(P2) + 1: VALU = VALU - (256 ^ P2): GOTO AGAIN
- NEXT
- FOR P2 = PLlst(P) TO 0 STEP -1
- J1 = CHR$(PL(P2))
- IF PLlst(P) <> -1 AND (P < 26 OR P > 28) THEN PUT #1, Place(P) + P2 + (CHANGE * (Pln - 1)), J1
- NEXT
- NEXT
- FOR P = 26 TO 28
- VALU = VAL(Datan(P))
- PL(0) = 0
- PL(1) = 0
- PL(2) = 0
- PL(3) = 0
- PL(4) = 0
- 'VALU = VALU + 1
- FOR P2 = PLlst(P) TO 0 STEP -1
- AGAIN2: IF VALU >= (256 ^ P2) THEN PL(P2) = PL(P2) + 1: VALU = VALU - (256 ^ P2): GOTO AGAIN2
- NEXT
- FOR P2 = PLlst(P) TO 0 STEP -1
- J1 = CHR$(PL(P2))
- PUT #1, Place(P) + P2, J1
- NEXT
- NEXT
- ENDER:
- WIDTH 80, 25
- END
- QUICKY:
- FOR P = 0 TO Ts - 1
- SELECT CASE Tipe(P)
- CASE 1
- Datan(P) = "1"
- IF P = 11 AND Ver = 105 THEN Datan(P) = "2"
- CASE 3
- Datan(P) = "2000000600"
- CASE 4
- Datan(P) = "199"
- CASE 5
- Datan(P) = "35536"
- CASE 6
- Datan(P) = "2000200600"
- CASE 10
- IF God = Y THEN Datan(P) = "2"
- END SELECT
- NEXT
- GOSUB SAVE
- FUNCTION GETT$ (P)
- IF P = 0 THEN GETT$ = " -1 P=0": EXIT FUNCTION
- IF PLlst(P) < 0 THEN GETT$ = " UNKNOWN": EXIT FUNCTION
- FOR P2 = 0 TO PLlst(P)
- IF P < 26 OR P > 28 THEN GET #1, Place(P) + P2 + (CHANGE * (Pln - 1)), J1
- IF P >= 26 AND P <= 28 THEN GET #1, Place(P) + P2, J1
- VALU = VALU + ASC(J1) * (256 ^ (P2))
- NEXT
- GETT$ = STR$(VALU)
- END FUNCTION
- DEFINT J, V-Z
- FUNCTION MouseDoubleClick (Delay, Button, m3, m4)
- '----------------------------------------------------------------------------
- ' function MouseDoubleClick returns a zero if the mouse button specified by
- ' Button has not been double clicked within the time specified by Delay, or
- ' a one if it has. Button is either 0 (Left) or 1 (Right).
- '
- ' RETURNS:
- '
- ' m1 = button status. 0 = No buttons pressed
- ' 1 = Left button pressed
- ' 2 = Right button pressed
- ' 3 = Both buttons pressed
- '
- ' m2 = Number of button presses on specified button
- ' m3 = Horizontal cursor position at last button press.
- ' m4 = Vertical cursor position at last button press.
- '
- '----------------------------------------------------------------------------
- m1 = 5 'Mouse function 5, Get Button Press Information
- m2 = Button 'Button to check
- MouseDriver m1, m2, m3, m4
- WaitForClick& = TIMER + Delay
- WHILE TIMER < WaitForClick&: WEND
- m1 = 5 'Mouse function 5, Get Button Press Information
- m2 = Button
- MouseDriver m1, m2, m3, m4
- IF m2 > 1 THEN MouseDoubleClick = 1 ELSE MouseDoubleClick = 0
- END FUNCTION
- SUB MouseDriver (m0, m1, m2, m3) STATIC
- '----------------------------------------------------------------------------
- ' procedure MouseDriver uses interrupt 51 to invoke mouse functions in the
- ' Microsoft Mouse Driver. NOTE: ALL parameters to this procedure MUST
- ' be of type INTEGER.
- '----------------------------------------------------------------------------
- DIM regs AS Register
- regs.ax = m0
- regs.bx = m1
- regs.cx = m2
- regs.dx = m3
- Interrupt 51, regs, regs
- m0 = regs.ax
- m1 = regs.bx
- m2 = regs.cx
- m3 = regs.dx
- END SUB
- FUNCTION MouseInit
- '----------------------------------------------------------------------------
- ' procedure MouseInit initializes the mouse and detects wheter or not
- ' the Microsoft Mouse Driver is installed.
- '----------------------------------------------------------------------------
- m1 = 0
- MouseDriver m1, m2, m3, m4
- IF NOT m1 THEN MouseInit = 0 ELSE MouseInit = 1
- END FUNCTION
- SUB MouseOff
- '----------------------------------------------------------------------------
- ' procedure MouseOff turns the mouse cursor off. (Mouse function 2)
- '----------------------------------------------------------------------------
- m1 = 2
- MouseDriver m1, m2, m3, m4
- END SUB
- SUB MouseOn
- '----------------------------------------------------------------------------
- ' procedure MouseOn turns the mouse cursor on. (Mouse function 1)
- '----------------------------------------------------------------------------
- m1 = 1
- MouseDriver m1, m2, m3, m4
- END SUB
Advertisement
Add Comment
Please, Sign In to add comment