'===========================================================================
' Subject: IMMORTAL KOMBAT II                 Date: 04-06-96 (00:00)       
'  Author: John Diamond                       Code: QB, QBasic, PDS        
'  Origin: pages.prodigy.com/gamersp        Packet: GAMES.ABC
'===========================================================================
'Here is Immortal Kombat II at long last.
'It has 1 different special move for each character.
'You can play agianst the computer, or a friend.
'And it has a Pit fatality.
'386/16 required for good play! do not use on a XT!
'Even though it will work it is sloooooooowwwwwwwwwwwww.
'If you operate under 50mhz you must lower the random
'possibilities in D1, D2, and D3 that are in the SUB
'COMP, before you play agianst the computer.
'Enjoy!
'                               J.d
'P.S Thanx ThOmAs and ~DAVE~ I couldn't of done this
'with out your help.
'Keys:
'Move:             Player 1           Player 2
'-------------------------------------------------
'foreward               6                 D
'backward               4                 A
'Jump forward           9                 Q
'Jump Backward          7                 E
'Kick                   enter             V
'Punch                  +                 F
'Pit fatality           ?                 ?
'---------------------------------------------------
'Special moves have a two key combination, you
'could be tough and figure them out your self, or
'be a wimp and look at the INKEY commands.
DECLARE SUB ENDER ()
DECLARE SUB PITENDER ()
DECLARE SUB PIT1 ()
DECLARE SUB PIT2 ()
DECLARE SUB COMP ()
DECLARE SUB DEAD ()
DECLARE SUB STAT1 ()
DECLARE SUB STAT2 ()
DECLARE SUB SHADOW2 ()
DECLARE SUB SONIC2 ()
DECLARE SUB ICE2 ()
DECLARE SUB SPEAR2 ()
DECLARE SUB FLAME2 ()
DECLARE SUB FRY2 ()
DECLARE SUB KNIFE2 ()
DECLARE SUB KNIFE ()
DECLARE SUB ICE ()
DECLARE SUB SPEAR ()
DECLARE SUB FLAME ()
DECLARE SUB FRY ()
DECLARE SUB SHADOW ()
DECLARE SUB SONIC ()
DECLARE SUB WALKF2 ()
DECLARE SUB WALKB2 ()
DECLARE SUB PUNCH2 ()
DECLARE SUB KICK2 ()
DECLARE SUB JUMP2 ()
DECLARE SUB JUMPB2 ()
DECLARE SUB PUNCH1 ()
DECLARE SUB KICK1 ()
DECLARE SUB JUMP1 ()
DECLARE SUB JUMPB1 ()
DECLARE SUB WALKF1 ()
DECLARE SUB DRAWBACK2 ()
DECLARE SUB WALKB1 ()
DECLARE SUB getcharacters ()
DECLARE SUB DRAWBACK ()
DECLARE SUB TITLE ()
DIM SHARED FINISH1
DIM SHARED FINISH2
DIM SHARED CHAR$
DIM SHARED CHAR2$
DIM SHARED L1
DIM SHARED L2
DIM SHARED CHAR2
DIM SHARED CHAR
DIM SHARED FLAG
DIM SHARED X1
DIM SHARED X2
DIM SHARED R1(800)
DIM SHARED R2(800)
DIM SHARED W1(800)
DIM SHARED W2(800)
DIM SHARED P1(800)
DIM SHARED p2(800)
DIM SHARED K1(800)
DIM SHARED K2(800)
DIM SHARED D1(800)
GP:
COLOR 15

LOCATE 12, 32: PRINT "How many players?"
LOCATE 13, 32: PRINT "       (1/2)";
INPUT "", PLAYER
IF PLAYER > 2 THEN GOTO GP
IF PLAYER = 0 THEN GOTO GP
L1 = 50
L2 = 50
ON ERROR GOTO NOEGA
SCREEN 7: GOTO EGA
NOEGA:
FLAG = 1: SCREEN 1: GOTO EGA
EGA:
TITLE
RANDOMIZE TIMER
PRINT "1) Rayden" 'ELECTRIC THROW
PRINT "2) Sub Zero" ' ICE THROW
PRINT "3) Scorpion" ' VAN DAM SPEAR
PRINT "4) Sonya" ' SONIC WAVE
PRINT "5) Johny Cage" ' SHADOW KICK
PRINT "6) Lui Kang" ' GREEN FLAME
PRINT "7) Kano" ' KNIFE THROW
INPUT "Player 1: ", CHAR
IF PLAYER = 1 THEN GOTO SKIP
INPUT "Player 2: ", CHAR2
SKIP:
IF PLAYER = 1 THEN CHAR2 = INT(RND(1) * 7) + 1
CLS : COLOR 1, 1
getcharacters
DRAWBACK
COLOR 4, 1
LOCATE 2, 15: PRINT "FIGHT"
X1 = 50
X2 = 260
PUT (X1, 91), R1, PSET
PUT (X2, 91), R2, PSET
IN:
K$ = INKEY$
IF FINISH1 = 1 THEN GOTO p2
IF K$ = "/" AND FINISH2 = 1 THEN PIT2
IF K$ = "6" THEN WALKF1: FLAG1 = 1: GOSUB CHECK1
IF K$ = "4" THEN WALKB1: FLAG2 = 1: GOSUB CHECK2
IF K$ = "+" THEN PUNCH1: FLAG3 = 1: GOSUB CHECK3: STAT1
IF K$ = CHR$(13) THEN KICK1: FLAG4 = 1: GOSUB CHECK4: STAT1
IF K$ = "9" THEN JUMP1
IF K$ = "7" THEN JUMPB1
IF FINISH2 = 1 THEN GOTO IN
IF PLAYER = 1 THEN GOTO SP1
p2:
IF K$ = "R" AND FINISH1 = 1 THEN PIT2
IF K$ = "D" THEN WALKF2: FLAGG2 = 1: GOSUB CCHECK2
IF K$ = "A" THEN WALKB2: FLAGG1 = 1: GOSUB CCHECK1
IF K$ = "F" THEN PUNCH2: FLAGG3 = 1: GOSUB CCHECK3: STAT2
IF K$ = "V" THEN KICK2: FLAGG4 = 1: GOSUB CCHECK4: STAT2
IF K$ = "E" THEN JUMP2
IF K$ = "Q" THEN JUMPB2
IF FINISH1 = 1 AND PLAYER = 1 THEN COMP: GOTO IN
IF FINISH1 = 1 THEN GOTO IN
'SPECIAL MOVES:
SP1:
'P1:
IF K$ = "1" AND FLAG2 = 1 THEN FLAG2 = 0: FRY
IF K$ = "2" AND FLAG3 = 1 THEN FLAG3 = 0: KNIFE
IF K$ = "8" AND FLAG4 = 1 THEN FLAG4 = 0: SHADOW
IF K$ = "3" AND FLAG3 = 1 THEN FLAG2 = 0: SONIC
IF K$ = "1" AND FLAG3 = 1 THEN FLAG3 = 0: ICE
IF K$ = "8" AND FLAG3 = 1 THEN FLAG3 = 0: SPEAR
IF K$ = "2" AND FLAG4 = 1 THEN FLAG4 = 0: FLAME
IF PLAYER = 1 THEN COMP
IF PLAYER = 1 THEN GOTO IN
'P2
IF K$ = "Z" AND FLAGG2 = 1 THEN FLAGG2 = 0: FRY2
IF K$ = "X" AND FLAGG3 = 1 THEN FLAGG3 = 0: KNIFE2
IF K$ = "W" AND FLAGG4 = 1 THEN FLAGG4 = 0: SHADOW2
IF K$ = "C" AND FLAGG3 = 1 THEN FLAGG2 = 0: SONIC2
IF K$ = "Z" AND FLAGG3 = 1 THEN FLAGG3 = 0: ICE2
IF K$ = "W" AND FLAGG3 = 1 THEN FLAGG3 = 0: SPEAR2
IF K$ = "X" AND FLAGG4 = 1 THEN FLAGG4 = 0: FLAME2
GOTO IN
CHECK1:
IF FLAG2 = 1 THEN FLAG2 = 0
IF FLAG3 = 1 THEN FLAG3 = 0
IF FLAG4 = 1 THEN FLAG4 = 0
RETURN
CHECK2:
IF FLAG1 = 1 THEN FLAG1 = 0
IF FLAG3 = 1 THEN FLAG3 = 0
IF FLAG4 = 1 THEN FLAG4 = 0
RETURN
CHECK3:
IF FLAG2 = 1 THEN FLAG2 = 0
IF FLAG1 = 1 THEN FLAG1 = 0
IF FLAG4 = 1 THEN FLAG4 = 0
RETURN
CHECK4:
IF FLAGG2 = 1 THEN FLAG2 = 0
IF FLAGG3 = 1 THEN FLAG3 = 0
IF FLAGG1 = 1 THEN FLAG1 = 0
RETURN

CCHECK1:
IF FLAGG2 = 1 THEN FLAGG2 = 0
IF FLAGG3 = 1 THEN FLAGG3 = 0
IF FLAGG4 = 1 THEN FLAGG4 = 0
RETURN
CCHECK2:
IF FLAGG1 = 1 THEN FLAGG1 = 0
IF FLAGG3 = 1 THEN FLAGG3 = 0
IF FLAGG4 = 1 THEN FLAGG4 = 0
RETURN
CCHECK3:
IF FLAGG2 = 1 THEN FLAGG2 = 0
IF FLAGG1 = 1 THEN FLAGG1 = 0
IF FLAGG4 = 1 THEN FLAGG4 = 0
RETURN
CCHECK4:
IF FLAGG2 = 1 THEN FLAGG2 = 0
IF FLAGG3 = 1 THEN FLAGG3 = 0
IF FLAGG1 = 1 THEN FLAGG1 = 0
RETURN

SUB COMP
D1 = INT(RND(1) * 20) + 1
D2 = INT(RND(1) * 25) + 1
D3 = INT(RND(1) * 65) + 1
RANDOMIZE TIMER
IF X2 > X1 + 15 AND D1 = 2 THEN
X2 = X2 - 1: WALKB2
END IF
IF X2 > X1 + 5 AND X2 < X1 + 19 AND D2 = 6 THEN
PUNCH2
END IF
IF X2 > X1 + 5 AND X2 < X1 + 19 AND D2 = 25 THEN
KICK2
END IF
IF FINISH1 = 1 THEN END
IF D3 = 65 THEN
IF CHAR2 = 1 THEN FRY2
IF CHAR2 = 2 THEN ICE2
IF CHAR2 = 3 THEN SPEAR2
IF CHAR2 = 4 THEN SONIC2
IF CHAR2 = 5 THEN SHADOW2
IF CHAR2 = 6 THEN FLAME2
IF CHAR2 = 7 THEN KNIFE2
END IF
IF X2 < X1 + 15 AND D1 = 20 THEN
JUMP2
END IF
END SUB

SUB DEAD
COLOR 15
LOCATE 7, 15: PRINT "FINISH HIM"
END SUB

SUB DRAWBACK
CLS
COLOR 1, 1
LINE (0, 125)-(319, 155), 7, BF
LINE (30, 135)-(34, 200), 7
LINE (60, 135)-(56, 200), 7
PAINT (50, 199), 7
LINE (250, 135)-(254, 200), 7
LINE (290, 135)-(286, 200), 7
PAINT (270, 199), 7
LINE (100, 130)-(110, 130), 15
LINE (100, 130)-(100, 150), 15
LINE (100, 150)-(110, 150), 8
LINE (110, 150)-(110, 130), 8
LINE (115, 130)-(115, 150), 15
LINE (115, 130)-(125, 140), 15
LINE (125, 140)-(130, 130), 15
LINE (130, 132)-(130, 150), 8
LINE (128, 150)-(128, 140), 8
LINE (128, 140)-(125, 144), 8
LINE (125, 144)-(119, 138), 8
LINE (119, 138)-(119, 150), 8
LINE (119, 150)-(115, 150), 8
LINE (130, 150)-(128, 150), 8
LINE (135, 130)-(135, 150), 15
LINE (135, 130)-(138, 130), 15
LINE (138, 130)-(138, 140), 15
LINE (138, 140)-(143, 135), 15
LINE (143, 135)-(145, 137), 8
LINE (145, 137)-(138, 143), 8
LINE (138, 143)-(145, 150), 8
LINE (135, 150)-(145, 150), 8
IF CHAR = 1 THEN CHAR$ = "Rayden"
IF CHAR = 2 THEN CHAR$ = "Sub Zero"
IF CHAR = 3 THEN CHAR$ = "Scorpion"
IF CHAR = 4 THEN CHAR$ = "Sonya"
IF CHAR = 5 THEN CHAR$ = "Johny Cage"
IF CHAR = 6 THEN CHAR$ = "Lui Kang"
IF CHAR = 7 THEN CHAR$ = "Kano"

IF CHAR2 = 1 THEN CHAR2$ = "Rayden"
IF CHAR2 = 2 THEN CHAR2$ = "Sub Zero"
IF CHAR2 = 3 THEN CHAR2$ = "Scorpion"
IF CHAR2 = 4 THEN CHAR2$ = "Sonya"
IF CHAR2 = 5 THEN CHAR2$ = "Johny Cage"
IF CHAR2 = 6 THEN CHAR2$ = "Lui Kang"
IF CHAR2 = 7 THEN CHAR2$ = "Kano"
LOCATE 1, 1: PRINT CHAR$; CHAR2$
END SUB

SUB DRAWBACK2
IF FLAG = 0 THEN
LINE (0, 26)-(319, 124), 1, BF
END IF
IF FLAG = 1 THEN
LINE (0, 26)-(319, 124), 0, BF
END IF
COLOR 15
LOCATE 5, 4: PRINT CHAR$
LOCATE 5, 25: PRINT CHAR2$
COLOR 1, 1
STAT1
STAT2
END SUB

SUB ENDER
COLOR 15
LOCATE 7, 14
IF FINISH1 = 1 THEN PRINT CHAR2$;
IF FINISH2 = 1 THEN PRINT CHAR$;
PRINT " Wins!"
WHILE INKEY$ = "": WEND
WHILE INKEY$ = "": WEND
SYSTEM
END SUB

SUB FLAME
IF CHAR <> 6 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), P1
PUT (X2, 91), R2
FOR I = X1 + 12 TO X2
CIRCLE (I, 91 + 15), 3, 10
PUT (X1, 91), P1
PUT (X2, 91), R2
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L2 = L2 - 5: STAT2
END SUB

SUB FLAME2
IF CHAR2 <> 6 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), p2
PUT (X1, 91), R1
I = X2
FOR V = X1 + 12 TO X2
I = I - 1
CIRCLE (I, 91 + 15), 3, 10
PUT (X2, 91), p2
PUT (X1, 91), R1
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L1 = L1 - 5: STAT1
END SUB

SUB FRY
IF CHAR <> 1 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), P1
PUT (X2, 91), R2
IF FLAG = 0 THEN
LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 14
END IF
IF FLAG = 1 THEN
LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 1
END IF
FOR I = 1 TO 500: NEXT
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
L2 = L2 - 7: STAT2
END SUB

SUB FRY2
IF CHAR2 <> 1 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), p2
IF FLAG = 0 THEN
LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 14
END IF
IF FLAG = 1 THEN
LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 1
END IF
FOR I = 1 TO 500: NEXT
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
L1 = L1 - 7: STAT1
END SUB

SUB getcharacters
'R1
CIRCLE (7, 7), 5, 7
LINE (7, 12)-(7, 24), 8
LINE (7, 24)-(0, 33), 5
LINE (7, 24)-(14, 33), 5
LINE (7, 19)-(12, 12), 8
GET (0, 0)-(15, 33), R1
'R2
CIRCLE (28, 7), 5, 7
LINE (28, 12)-(28, 24), 8
LINE (28, 24)-(21, 33), 5
LINE (28, 24)-(35, 33), 5
LINE (28, 19)-(19, 12), 8
GET (18, 0)-(35, 33), R2
'W1
CIRCLE (49, 7), 5, 7
LINE (49, 12)-(49, 33), 8
LINE (49, 24)-(49, 33), 5
LINE (49, 24)-(56, 33), 5
LINE (49, 19)-(54, 12), 8
GET (39, 0)-(56, 33), W1
'W2
CIRCLE (70, 7), 5, 7
LINE (70, 12)-(70, 33), 8
LINE (70, 24)-(70, 33), 5
LINE (70, 24)-(65, 33), 5
LINE (70, 19)-(65, 12), 8
GET (60, 0)-(75, 33), W2
'P1
CIRCLE (91, 7), 5, 7
LINE (91, 12)-(91, 24), 8
LINE (91, 24)-(86, 33), 5
LINE (91, 24)-(96, 33), 5
LINE (91, 19)-(100, 19), 8
GET (81, 0)-(101, 33), P1
'P2
CIRCLE (112, 7), 5, 7
LINE (112, 12)-(112, 24), 8
LINE (112, 24)-(107, 33), 5
LINE (112, 24)-(117, 33), 5
LINE (112, 19)-(101, 19), 8
GET (101, 0)-(117, 33), p2
'K1
CIRCLE (133, 7), 5, 7
LINE (133, 12)-(133, 33), 8
LINE (133, 24)-(133, 33), 5
LINE (133, 24)-(148, 24), 5
LINE (133, 19)-(138, 12), 8
GET (123, 0)-(148, 33), K1
'K2
CIRCLE (164, 7), 5, 7
LINE (164, 12)-(164, 33), 8
LINE (164, 24)-(164, 33), 5
LINE (164, 24)-(150, 24), 5
LINE (164, 19)-(159, 12), 8
GET (149, 0)-(170, 33), K2
'D
LINE (174, 15)-(195, 15), 4
LINE (174, 17)-(195, 17), 4
LINE (195, 16)-(216, 16), 9
CIRCLE (222, 16), 5, 6
GET (174, 12)-(227, 22), D1
END SUB

SUB ICE
IF CHAR <> 2 THEN EXIT SUB
IF FLAG = 1 THEN C = 1
IF FLAG = 0 THEN C = 9
PUT (X1, 91), P1
PUT (X2, 91), R2
FOR I = X1 + 12 TO X2
LINE (I, 106)-(I + 5, 110), C, BF
PUT (X1, 91), R1
PUT (X2, 91), R2
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L2 = L2 - 3: STAT2
END SUB

SUB ICE2
IF CHAR2 <> 2 THEN EXIT SUB
IF FLAG = 1 THEN C = 1
IF FLAG = 0 THEN C = 9
PUT (X2, 91), p2
PUT (X1, 91), R1
I = X2
FOR V = X1 + 12 TO X2
I = I - 1
LINE (I, 106)-(I + 5, 110), C, BF
PUT (X1, 91), R1
PUT (X2, 91), R2
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L1 = L1 - 3: STAT1
END SUB

SUB JUMP1
        IF X1 > 285 THEN EXIT SUB
        DRAWBACK2
        PUT (X2, 91), R2
        PUT (X1, 85), R1
        DRAWBACK2
        FOR I = 1 TO 5
        X1 = X1 + 1
        PUT (X1 + I + 10, 76 + I), R1
        PUT (X2, 91), R2
        DRAWBACK2
        NEXT
        X1 = X1 + 30
        PUT (X1, 91), R1
        PUT (X2, 91), R2

END SUB

SUB JUMP2
IF X2 > 262 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), R2
PUT (X1, 85), R1
DRAWBACK2
FOR I = 1 TO 5
X2 = X2 + 1
PUT (X2 + I + 10, 76 + I), R2
PUT (X1, 91), R1
DRAWBACK2
NEXT
X2 = X2 + 30
PUT (X1, 91), R1
PUT (X2, 91), R2


END SUB

SUB JUMPB1
IF X1 < 35 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), R2
PUT (X1, 85), R1
DRAWBACK2
FOR I = 1 TO 5
X1 = X1 - 1
PUT (X1 - I - 10, 76 + I), R1
PUT (X2, 91), R2
DRAWBACK2
NEXT
X1 = X1 - 30
PUT (X1, 91), R1
PUT (X2, 91), R2

END SUB

SUB JUMPB2
IF X2 < 35 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), R2
PUT (X1, 85), R1
DRAWBACK2
FOR I = 1 TO 5
X2 = X2 - 1
PUT (X2 - I - 10, 76 + I), R2
PUT (X1, 91), R1
DRAWBACK2
NEXT
X2 = X2 - 30
PUT (X1, 91), R1
PUT (X2, 91), R2


END SUB

SUB KICK1
DRAWBACK2
PUT (X2, 91), R2
PUT (X1, 91), K1
FOR I = 1 TO 1000: NEXT
DRAWBACK2
PUT (X2, 91), R2
PUT (X1, 91), R1
IF X1 + 16 > X2 AND X1 < X2 + 12 THEN L2 = L2 - 1: STAT2
END SUB

SUB KICK2
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), K2
FOR I = 1 TO 1000: NEXT
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
IF X2 - 8 < X1 + 10 THEN L1 = L1 - 1: STAT1
END SUB

SUB KNIFE
IF CHAR <> 7 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), P1
PUT (X2, 91), R2
FOR I = X1 + 12 TO X2
LINE (I, 95)-(I + 5, 100), 7
PUT (X1, 91), R1
PUT (X2, 91), R2
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L2 = L2 - 5: STAT2
END SUB

SUB KNIFE2
IF CHAR <> 7 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), p2
PUT (X2, 91), R1
I = X2
FOR V = X1 + 12 TO X2
I = I - 1
LINE (I, 95)-(I + 5, 100), 7
PUT (X1, 91), R1
PUT (X2, 91), R2
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L1 = L1 - 5: STAT1
END SUB

SUB PIT2
CLS
FOR Y = 1 TO 180
COLOR 1, 1
LINE (34, 0)-(56, 200), 7, BF
LINE (254, 0)-(286, 200), 7, BF
LINE (0, 190)-(319, 200), 7, BF
FOR I = 1 TO 320 STEP 20
LINE (I, 190)-(I + 5, 180), 15
LINE (I + 15, 190)-(I + 10, 180), 15
NEXT
LINE (34, 0)-(34, 200), 7
LINE (56, 0)-(56, 200), 7
PAINT (36, 1), 7
IF FINISH2 = 1 THEN PUT (X2, Y), D1, PSET
IF FINISH1 = 1 THEN PUT (X1, Y), D1, PSET
FOR I = 1 TO 150: NEXT
LINE (57, 0)-(253, 176), 1, BF
NEXT
LINE (254, 0)-(286, 200), 7, BF
LINE (0, 190)-(319, 200), 7, BF
FOR I = 1 TO 320 STEP 20
LINE (I, 190)-(I + 5, 180), 15
LINE (I + 15, 190)-(I + 10, 180), 15
NEXT
LINE (34, 0)-(34, 200), 7
LINE (56, 0)-(56, 200), 7
PAINT (36, 1), 7
PITENDER


END SUB

SUB PITENDER
COLOR 15
LOCATE 4, 15: PRINT "PIT FATALITY"
LOCATE 7, 13
IF FINISH1 = 1 THEN PRINT CHAR2$;
IF FINISH2 = 1 THEN PRINT CHAR$;
PRINT " Wins!"
WHILE INKEY$ = "": WEND
WHILE INKEY$ = "": WEND
SYSTEM
END SUB

SUB PUNCH1
DRAWBACK2
PUT (X2, 91), R2
PUT (X1, 91), P1
FOR I = 1 TO 1000
NEXT
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
IF X1 + 16 > X2 AND X1 < X2 + 12 THEN L2 = L2 - 1: STAT2
END SUB

SUB PUNCH2
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), p2
FOR I = 1 TO 1000: NEXT
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
IF X2 - 8 < X1 + 8 THEN L1 = L1 - 1: STAT1
END SUB

SUB SHADOW
IF CHAR <> 5 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), R1
FOR I = 1 TO 10
X1 = X1 + 5
PUT (X1, 91), K1
PUT (X2, 91), R2
DRAWBACK2
NEXT
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
IF X1 > X2 THEN L2 = L2 - 6: STAT2
END SUB

SUB SHADOW2
IF CHAR2 <> 5 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), R1
FOR I = 1 TO 10
X2 = X2 - 5
PUT (X2, 91), K2
PUT (X1, 91), R1
DRAWBACK2
NEXT
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
IF X2 < X1 + 12 THEN L1 = L1 - 6: STAT1

END SUB

SUB SONIC
IF CHAR <> 4 THEN EXIT SUB
IF FLAG = 1 THEN C = 2
IF FLAG = 0 THEN C = 12
DRAWBACK2
PUT (X1, 91), P1
PUT (X2, 91), R2
FOR I = X1 TO X2
LINE (I, 98)-(I, 105), C
LINE (I + 2, 97)-(I + 1, 104), C
LINE (I + 4, 96)-(I + 2, 103), C
PUT (X1, 91), R1
PUT (X2, 91), R2
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
NEXT
L2 = L2 - 4: STAT2
END SUB

SUB SONIC2
IF CHAR <> 4 THEN EXIT SUB
IF FLAG = 1 THEN C = 2
IF FLAG = 0 THEN C = 12
DRAWBACK2
PUT (X2, 91), p2
PUT (X1, 91), R1
I = X2
FOR V = X1 TO X2
I = I - 1
LINE (I, 98)-(I, 105), C
LINE (I - 2, 97)-(I - 1, 104), C
LINE (I - 4, 96)-(I - 2, 103), C
PUT (X1, 91), R1
PUT (X2, 91), R2
DRAWBACK2
PUT (X1, 91), R1
PUT (X2, 91), R2
NEXT
L1 = L1 - 4: STAT1
END SUB

SUB SPEAR
IF CHAR <> 3 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), P1
PUT (X2, 91), R2
LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 8
FOR I = X1 TO X2 - 15
X2 = X2 - 1
PUT (X1, 91), P1
PUT (X2, 91), R2
LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 8
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L2 = L2 - 4: STAT2
END SUB

SUB SPEAR2
IF CHAR2 <> 3 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), p2
PUT (X1, 91), R1
LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 8
FOR I = X1 TO X2 - 15
X1 = X1 + 1
PUT (X2, 91), p2
PUT (X1, 91), R1
LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 8
DRAWBACK2
NEXT
PUT (X1, 91), R1
PUT (X2, 91), R2
L1 = L1 - 4: STAT1
END SUB

SUB STAT1
IF FINISH1 = 1 OR FINISH2 = 1 THEN ENDER
IF L1 < 0 THEN DEAD: FINISH1 = 1
IF FLAG = 0 THEN C1 = 14: C2 = 4
IF FLAG = 1 THEN C1 = 4: C2 = 2
LINE (0, 5)-(150, 25), C1, BF
LINE (L1 * 3, 5)-(150, 25), C2, BF
END SUB

SUB STAT2
IF FINISH1 = 1 OR FINISH2 = 1 THEN ENDER
IF L2 < 0 THEN DEAD: FINISH2 = 1
IF FLAG = 0 THEN C1 = 14: C2 = 4
IF FLAG = 1 THEN C1 = 4: C2 = 2
LINE (170, 5)-(320, 25), C1, BF
LINE (L2 * 3 + 170, 5)-(320, 25), C2, BF
END SUB

SUB TITLE
COLOR 0, 7
LINE (50, 20)-(50, 150), 15
LINE (50, 20)-(75, 20), 15
LINE (75, 20)-(75, 150), 8
LINE (75, 150)-(50, 150), 8
LINE (90, 20)-(90, 150), 15
LINE (90, 20)-(115, 70), 15
LINE (115, 70)-(130, 20), 15
LINE (130, 22)-(130, 150), 8
LINE (125, 150)-(125, 65), 8
LINE (125, 65)-(115, 85), 8
LINE (115, 85)-(105, 65), 8
LINE (105, 65)-(105, 150), 8
LINE (105, 150)-(90, 150), 8
LINE (125, 150)-(130, 150), 8
LINE (140, 20)-(140, 150), 15
LINE (140, 20)-(150, 20), 15
LINE (150, 20)-(150, 90), 15
LINE (150, 90)-(175, 70), 15
LINE (175, 70)-(180, 80), 8
LINE (180, 80)-(150, 100), 8
LINE (150, 100)-(190, 150), 8
LINE (190, 150)-(140, 150), 8
COLOR 1
LOCATE 1, 1: PRINT "IMMORTAL KOMBAT.........."
LOCATE 20, 15: PRINT "1994 G.P.S Software......"
LOCATE 22, 10: PRINT "By: John Diamond"
WHILE INKEY$ = "": WEND
CLS : COLOR 15, 0
'IF FLAG = 1 THEN SCREEN 1
'IF FLAG = 0 THEN SCREEN 7
END SUB

SUB WALKB1
IF X1 < 5 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), R2
X1 = X1 - 4
PUT (X1, 91), W1
X1 = X1 - 1
FOR I = 1 TO 200: NEXT
DRAWBACK2
X1 = X1 - 1
PUT (X1, 91), R1
PUT (X2, 91), R2
END SUB

SUB WALKB2
IF X2 < 2 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), R1
X2 = X2 - 4
PUT (X2, 91), W2
FOR I = 1 TO 200: NEXT
DRAWBACK2
X2 = X2 - 1
PUT (X1, 91), R1
PUT (X2, 91), R2
END SUB

SUB WALKF1
IF X1 > 295 THEN EXIT SUB
DRAWBACK2
PUT (X2, 91), R2
X1 = X1 + 4
PUT (X1, 91), W1
FOR I = 1 TO 200: NEXT
DRAWBACK2
PUT (X2, 91), R2
X1 = X1 + 1
PUT (X1, 91), R1
END SUB

SUB WALKF2
IF X2 > 295 THEN EXIT SUB
DRAWBACK2
PUT (X1, 91), R1
X2 = X2 + 4
PUT (X2, 91), W2
FOR I = 1 TO 200: NEXT
DRAWBACK2
X2 = X2 + 1
PUT (X2, 91), R2
PUT (X1, 91), R1
END SUB

