Advertisement
DashWaLLker

Frogger

Dec 12th, 2014
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. STACK1 SEGMENT STACK
  2.     DB 100H DUP (?)
  3.     LOOPER DB (?) ;-
  4.     LOOPER1 DB (?);- Used for loops when CX is taken.
  5.     LOOPER2 DB(?) ;-
  6.     ABX DW 320*188+165 ;Keeps the frog's location.
  7.     MOVE_Y DB 0 ;Frog's movement on the Y axis. (0-9)
  8.     MOVE_X DW 165 ;Frog's movement on the X axis. (25-305)
  9.     LIVES DB 3 ;Number of lives the frog has.
  10.     LILYPAD1 DB 0 ;-
  11.     LILYPAD2 DB 0 ;-
  12.     LILYPAD3 DB 0 ;- Boolean (if frog at lilypad == 1)
  13.     LILYPAD4 DB 0 ;-
  14.     LILYPAD5 DB 0 ;-
  15.    
  16.     CAR1_1 DW 320*161 ;Keeps Car1_1's location.
  17.     CAR1_1_X DW 0 ;Car1_1's movement on the X axis. (0-320)
  18.     CAR1_2 DW 320*161+100 ;Keeps Car1_2's location.
  19.     CAR1_2_X DW 100 ;Car1_2's movement on the X axis. (0-320)
  20.     CAR1_3 DW 320*161+200 ;Keeps Car1_3's location.
  21.     CAR1_3_X DW 200 ;Car1_3's movement on the X axis. (0-320)
  22.    
  23.     CAR2_1 DW 320*141+320 ;Keeps Car2_1's location.
  24.     CAR2_1_X DW 320 ;Car2_1's movement on the X axis. (320-0)
  25.     CAR2_2 DW 320*141+220 ;Keeps Car2_2's location.
  26.     CAR2_2_X DW 220 ;Car2_2's movement on the X axis. (320-0)
  27.     CAR2_3 DW 320*141+120 ;Keeps Car2_3's location.
  28.     CAR2_3_X DW 120 ;Car2_3's movement on the X axis. (320-0)
  29.    
  30.     CAR3_1 DW 320*129 ;Keeps Car3_1's location.
  31.     CAR3_1_X DW 0 ;Car3_1's movement on the X axis. (0-320)
  32.     CAR3_2 DW 320*129+100 ;Keeps Car3_2's location.
  33.     CAR3_2_X DW 100 ;Car3_2's movement on the X axis. (0-320)  
  34.     CAR3_3 DW 320*129+200 ;Keeps Car3_2's location.
  35.     CAR3_3_X DW 200 ;Car3_2's movement on the X axis. (0-320)
  36.    
  37.     CAR4_1 DW 320*103+320 ;Keeps Car4_1's location.
  38.     CAR4_1_X DW 320 ;Car4_1's movement on the X axis. (320-0)
  39.     CAR4_2 DW 320*103+220 ;Keeps Car4_2's location.
  40.     CAR4_2_X DW 220 ;Car4_2's movement on the X axis. (320-0)
  41.     CAR4_3 DW 320*103+120 ;Keeps Car4_3's location.
  42.     CAR4_3_X DW 120 ;Car4_3's movement on the X axis. (320-0)
  43.  
  44.     BLACK EQU 0
  45.     BLUE EQU 1
  46.     GREEN EQU 2
  47.     LIGHT_BLUE EQU 3
  48.     RED EQU 4
  49.     PURPLE EQU 5
  50.     BROWN EQU 6
  51.     GREY EQU 7
  52.     DARK_GREY EQU 8
  53.     BLUE_PURPLE EQU 9
  54.     LIGHT_GREEN EQU 10
  55.     BRIGHT_BLUE EQU 11
  56.     LIGHT_RED EQU 12
  57.     PINK EQU 13
  58.     YELLOW EQU 14
  59.     WHITE EQU 15
  60.     GRASS_GREEN EQU 120
  61. STACK1 ENDS
  62. DATA SEGMENT
  63.     YOUWIN DB '            CONGRATULATIONS!                            YOU WIN!                         Press Enter to continue        $'
  64.     YOULOSE DB '                GAME OVER                               YOU LOSE!                        Press Enter to continue        $'
  65.     FROGGER DB '                 FROGGER$'
  66.     LINE1 DB 'Press 1 to start$'
  67.     LINE2 DB 'Press 2 for instructions$'
  68.     LINE3 DB 'Press 3 to exit$'
  69.     CREDITS DB 'Made by: Sean Kutakov$'
  70.     INSTRUCT0 DB 'INSTRUCTIONS:$'
  71.     INSTRUCT01 DB 'You are playing a frog trying to cross  the road. Your objective is to get on   all 5 lilypads. Avoid cars to not die.$'
  72.     INSTRUCT1 DB 'W / Up Arrow ----- go up.$'
  73.     INSTRUCT2 DB 'A / Left Arrow --- go left.$'
  74.     INSTRUCT3 DB 'D / Right Arrow -- go right.$'
  75.     INSTRUCT4 DB 'S / Down Arrow --- go down.$'
  76.     INSTRUCT5 DB 'Esc -------------- go back to menu.$'
  77.     INSTRUCT6 DB 'Press any key to continue...$'
  78. DATA ENDS
  79. CODE SEGMENT
  80.     ASSUME CS:CODE, ES:CODE, SS:STACK1, DS:DATA
  81. ;BX = Location = 320*ROW+COLUMN
  82. ;DH = Color
  83. START: MOV AX, CODE
  84.        MOV ES, AX
  85.        MOV DX, DATA
  86.        MOV DS, DX
  87.        CALL RESET
  88.        CALL MENU
  89.        MOV AH, 0    ;-
  90.        MOV AL, 13H  ;- GRAPHICS
  91.        INT 10H      ;- CARD
  92.        PUSH 0A000H  ;-
  93.        POP ES       ;-
  94.        CALL BACKGROUND
  95.        MOV DL, 3
  96.        MOV AH, 2
  97.        INT 21H
  98. BACK:  MOV AL, 0FFH
  99.        OUT 60H, AL ;KEYBOARD OUT
  100.        MOV SI, 0FFFFH
  101. DELAY: DEC SI
  102.        JNZ DELAY
  103.        CALL CAR1       
  104.        CALL CAR2
  105.        CALL CAR3
  106.        CALL CAR4
  107.        CALL FROG_DRAW
  108.        
  109.        CMP MOVE_Y, 1
  110.        JE T_CAR1
  111.        CMP MOVE_Y, 2
  112.        JE T_CAR2
  113.        CMP MOVE_Y, 3
  114.        JE T_CAR3
  115.        CMP MOVE_Y, 4
  116.        JE T_CAR4
  117.        JMP LILYPADS
  118. T_CAR1:CALL TESTCAR1
  119.        JMP LILYPADS
  120. T_CAR2:CALL TESTCAR2
  121.        JMP LILYPADS
  122. T_CAR3:CALL TESTCAR3
  123.        JMP LILYPADS
  124. T_CAR4:CALL TESTCAR4
  125.        
  126. LILYPADS:
  127.        CMP LILYPAD1, 1
  128.        JNE KELET
  129.        CMP LILYPAD2, 1
  130.        JNE KELET
  131.        CMP LILYPAD3, 1
  132.        JNE KELET
  133.        CMP LILYPAD4, 1
  134.        JNE KELET
  135.        CMP LILYPAD5, 1
  136.        JNE KELET
  137.        JMP WIN
  138. KELET: IN AL, 60H ;KEYBOARD IN
  139.        CMP AL, 17 ;W
  140.        JE UPX
  141.        CMP AL, 200 ;↑
  142.        JE UPX
  143.        CMP AL, 30 ;A
  144.        JE LEFTX
  145.        CMP AL, 203 ;←
  146.        JE LEFTX
  147.        CMP AL, 32 ;D
  148.        JE RIGHTX
  149.        CMP AL, 205 ;→
  150.        JE RIGHTX
  151.        CMP AL, 31 ;S
  152.        JE DOWNX
  153.        CMP AL, 208 ;↓
  154.        JE DOWNX
  155.        CMP AL, 1 ;ESC
  156.        JE QUIT
  157.        JMP BACK
  158.  
  159. QUIT:  JMP START
  160.        
  161. UPX:   CALL UP
  162.        CALL CHECKWIN
  163.        JMP BACK
  164. LEFTX: CALL LEFT
  165.        CALL CHECKWIN
  166.        JMP BACK
  167. RIGHTX:CALL RIGHT
  168.        CALL CHECKWIN
  169.        JMP BACK
  170. DOWNX: CALL DOWN
  171.        CALL CHECKWIN
  172.        JMP BACK
  173.      
  174. WIN:   MOV LOOPER, 5
  175. WINX:  CALL NEWLINE
  176.        DEC LOOPER
  177.        JNZ WINX
  178.        LEA DX, YOUWIN
  179.        MOV AH, 9
  180.        INT 21H
  181. WINZ:  MOV AH, 7
  182.        INT 21H
  183.        CMP AL, 13
  184.        JNE WINZ
  185.        JMP START
  186. ;--------------------[Functions]--------------------
  187. DRAW:  MOV BYTE PTR[ES:BX], DH
  188.        DEC BX
  189.        LOOP DRAW
  190.        RET
  191.        
  192. CHECKWIN:CMP MOVE_Y, 9
  193.        JNE RETWIN1
  194.        CMP MOVE_X, 85
  195.        JE LP_1
  196.        CMP MOVE_X, 125
  197.        JE LP_2
  198.        CMP MOVE_X, 165
  199.        JE LP_3
  200.        CMP MOVE_X, 205
  201.        JE LP_4
  202.        CMP MOVE_X, 245
  203.        JE LP_5_1
  204.        JMP RETWIN          
  205. RETWIN1:JMP RETWIN ;JMP EXTEND 
  206. LP_1:  MOV LILYPAD1, 1
  207.        CALL FROG_DRAW
  208.        MOV MOVE_Y, 0
  209.        MOV MOVE_X, 165
  210.        MOV BX, 320*188+165
  211.        MOV ABX, BX  
  212.        JMP RETWIN
  213. LP_5_1:JMP LP_5 ;JMP EXTEND    
  214. LP_2:  MOV LILYPAD2, 1
  215.        CALL FROG_DRAW
  216.        MOV MOVE_Y, 0
  217.        MOV MOVE_X, 165
  218.        MOV BX, 320*188+165
  219.        MOV ABX, BX
  220.        JMP RETWIN
  221. LP_3:  MOV LILYPAD3, 1
  222.        CALL FROG_DRAW
  223.        MOV MOVE_Y, 0
  224.        MOV MOVE_X, 165
  225.        MOV BX, 320*188+165
  226.        MOV ABX, BX
  227.        JMP RETWIN
  228. LP_4:  MOV LILYPAD4, 1
  229.        CALL FROG_DRAW
  230.        MOV MOVE_Y, 0
  231.        MOV MOVE_X, 165
  232.        MOV BX, 320*188+165
  233.        MOV ABX, BX
  234.        JMP RETWIN
  235. LP_5:  MOV LILYPAD5, 1
  236.        CALL FROG_DRAW
  237.        MOV MOVE_Y, 0
  238.        MOV MOVE_X, 165
  239.        MOV BX, 320*188+165
  240.        MOV ABX, BX     
  241. RETWIN:RET
  242. ;----------------------Movement---------------------
  243. UP:    CMP MOVE_Y, 9
  244.        JE UPZ
  245.        CALL FROG_ERASE
  246.        INC MOVE_Y
  247.        SUB BX, 320*20
  248.        MOV ABX, BX
  249. UPZ:   RET     
  250. DOWN:  CMP MOVE_Y, 0
  251.        JE DOWNZ
  252.        CALL FROG_ERASE
  253.        DEC MOVE_Y
  254.        ADD BX, 320*20
  255.        MOV ABX, BX
  256. DOWNZ: RET
  257. LEFT:  CMP MOVE_X, 25
  258.        JE LEFTZ
  259.        CALL FROG_ERASE
  260.        SUB MOVE_X, 20
  261.        SUB BX, 20
  262.        MOV ABX, BX
  263. LEFTZ: RET     
  264. RIGHT: CMP MOVE_X, 305
  265.        JE RIGHTZ
  266.        CALL FROG_ERASE
  267.        ADD MOVE_X, 20
  268.        ADD BX, 20
  269.        MOV ABX, BX
  270. RIGHTZ:RET
  271. ;--------------------Hit Detection--------------------
  272. TESTCAR1:
  273.        MOV SI, MOVE_X
  274.        SUB SI, 11
  275.        CMP SI, CAR1_1_X
  276.        JBE TCAR1_1
  277.        JMP TESTCAR1_2
  278. TCAR1_1:MOV SI, CAR1_1_X
  279.        SUB SI, 27
  280.        CMP MOVE_X, SI
  281.        JAE HIT1
  282. TESTCAR1_2:
  283.        MOV SI, MOVE_X
  284.        SUB SI, 11
  285.        CMP SI, CAR1_2_X
  286.        JBE TCAR1_2
  287.        JMP TESTCAR1_3
  288. TCAR1_2:MOV SI, CAR1_2_X
  289.        SUB SI, 27
  290.        CMP MOVE_X, SI
  291.        JAE HIT1
  292. TESTCAR1_3:    
  293.        MOV SI, MOVE_X
  294.        SUB SI, 11
  295.        CMP SI, CAR1_3_X
  296.        JBE TCAR1_3
  297.        JMP RETCAR1
  298. TCAR1_3:MOV SI, CAR1_3_X
  299.        SUB SI, 27
  300.        CMP MOVE_X, SI
  301.        JAE HIT1
  302.        JMP RETCAR1
  303. HIT1:  CALL HIT
  304. RETCAR1:RET
  305.  
  306. TESTCAR2:
  307.        MOV SI, MOVE_X
  308.        CMP SI, CAR2_1_X
  309.        JAE TCAR2_1
  310.        JMP TESTCAR2_2
  311. TCAR2_1:MOV SI, CAR2_1_X   
  312.        ADD SI, 38
  313.        CMP MOVE_X, SI
  314.        JBE HIT2
  315. TESTCAR2_2:
  316.        MOV SI,MOVE_X
  317.        CMP SI, CAR2_2_X
  318.        JAE TCAR2_2
  319.        JMP TESTCAR2_3
  320. TCAR2_2:MOV SI, CAR2_2_X
  321.        ADD SI, 38
  322.        CMP MOVE_X, SI
  323.        JBE HIT2
  324. TESTCAR2_3:
  325.        MOV SI, MOVE_X
  326.        CMP SI, CAR2_3_X
  327.        JAE TCAR2_3
  328.        JMP RETCAR2
  329. TCAR2_3:MOV SI, CAR2_3_X
  330.        ADD SI, 38
  331.        CMP MOVE_X, SI
  332.        JBE HIT2
  333.        JMP RETCAR3
  334. HIT2:  CALL HIT
  335. RETCAR2:RET
  336.        
  337. TESTCAR3:      
  338.        MOV SI, MOVE_X
  339.        SUB SI, 11
  340.        CMP SI, CAR3_1_X
  341.        JBE TCAR3_1
  342.        JMP TESTCAR3_2
  343. TCAR3_1:MOV SI, CAR3_1_X
  344.        SUB SI, 23
  345.        CMP MOVE_X, SI
  346.        JAE HIT3
  347. TESTCAR3_2:
  348.        MOV SI, MOVE_X
  349.        SUB SI, 11
  350.        CMP SI, CAR3_2_X
  351.        JBE TCAR3_2
  352.        JMP TESTCAR3_3
  353. TCAR3_2:MOV SI, CAR3_2_X
  354.        SUB SI, 23
  355.        CMP MOVE_X, SI
  356.        JAE HIT3
  357. TESTCAR3_3:
  358.        MOV SI, MOVE_X
  359.        SUB SI, 11
  360.        CMP SI, CAR3_3_X
  361.        JBE TCAR3_3
  362.        JMP RETCAR3
  363. TCAR3_3:MOV SI, CAR3_3_X
  364.        SUB SI, 23
  365.        CMP MOVE_X, SI
  366.        JAE HIT3
  367.        JMP RETCAR3
  368. HIT3:  CALL HIT
  369. RETCAR3:RET
  370.      
  371. TESTCAR4:
  372.        MOV SI, MOVE_X
  373.        CMP SI, CAR4_1_X
  374.        JAE TCAR4_1
  375.        JMP TESTCAR4_2
  376. TCAR4_1:MOV SI, CAR4_1_X
  377.        ADD SI, 53
  378.        CMP MOVE_X, SI
  379.        JBE HIT4    
  380. TESTCAR4_2:
  381.        MOV SI, MOVE_X
  382.        CMP SI, CAR4_2_X
  383.        JAE TCAR4_2
  384.        JMP TESTCAR4_3
  385. TCAR4_2:MOV SI, CAR4_2_X       
  386.        ADD SI, 53
  387.        CMP MOVE_X, SI
  388.        JBE HIT4
  389. TESTCAR4_3:
  390.        MOV SI, MOVE_X
  391.        CMP SI, CAR4_3_X
  392.        JAE TCAR4_3
  393.        JMP RETCAR4
  394. TCAR4_3:MOV SI, CAR4_3_X
  395.        ADD SI, 53
  396.        CMP MOVE_X, SI
  397.        JBE HIT4
  398.        JMP RETCAR4
  399. HIT4:  CALL HIT
  400. RETCAR4:RET
  401.  
  402. HIT:   CALL FROG_ERASE
  403.        MOV MOVE_Y, 0
  404.        MOV MOVE_X, 165
  405.        MOV BX, 320*188+165
  406.        MOV ABX, BX
  407.        DEC LIVES
  408.        MOV DL, 58H
  409.        MOV AH, 2
  410.        INT 21H
  411.        JNZ HITZ
  412.        MOV LOOPER, 5
  413. HITX:  CALL NEWLINE
  414.        DEC LOOPER
  415.        JNZ HITX
  416.        LEA DX, YOULOSE
  417.        MOV AH, 9
  418.        INT 21H
  419. HITZ1: MOV AH, 7
  420.        INT 21H
  421.        CMP AL, 13
  422.        JNE HITZ1
  423.        JMP START
  424. HITZ:  RET
  425. ;----------------------Frog---------------------      
  426. FROG_DRAW:
  427.        MOV BX, ABX
  428.        MOV DH, GREEN
  429.        CALL FROG_GREEN
  430.        MOV BX, ABX
  431.        MOV DH, YELLOW
  432.        CALL FROG_YELLOW
  433.        MOV BX, ABX
  434.        MOV DH, RED
  435.        CALL FROG_RED
  436.        MOV BX, ABX
  437.        RET
  438.  
  439. FROG_ERASE:
  440.        CMP MOVE_Y, 9
  441.        JE E_GREEN
  442.        CMP MOVE_Y, 0
  443.        JE E_PURPLE
  444.        CMP MOVE_Y, 5
  445.        JE E_PURPLE
  446.        CMP MOVE_Y, 6
  447.        JAE E_BLUE
  448.        MOV DH, BLACK
  449.        JMP FROG_ERASE1
  450. E_BLUE:MOV DH, BLUE
  451.        JMP FROG_ERASE1
  452. E_PURPLE:
  453.        MOV DH, PURPLE
  454.        JMP FROG_ERASE1     
  455. E_GREEN:MOV DH, GRASS_GREEN
  456.        CMP MOVE_X, 285
  457.        JAE FROG_ERASE1
  458.        CMP MOVE_X, 45
  459.        JBE FROG_ERASE1
  460.        JMP E_BLUE
  461. FROG_ERASE1:
  462.        MOV ABX, BX
  463.        CALL FROG_GREEN
  464.        MOV BX, ABX
  465.        CALL FROG_YELLOW
  466.        MOV BX, ABX
  467.        CALL FROG_RED
  468.        MOV BX, ABX
  469.        RET
  470. ;--[Cars: Movement, colors, and up/down cars]--
  471. ;---------------------Car1---------------------
  472. CAR1:  INC CAR1_1_X
  473.        CMP CAR1_1_X, 320
  474.        JNE CAR1X1
  475.        CALL UPCAR1_1
  476. CAR1X1:INC CAR1_2_X
  477.        CMP CAR1_2_X, 320
  478.        JNE CAR1X2
  479.        CALL UPCAR1_2
  480. CAR1X2:INC CAR1_3_X
  481.        CMP CAR1_3_x, 320
  482.        JNE CAR1X
  483.        CALL UPCAR1_3
  484. CAR1X: MOV BX, CAR1_1
  485.        MOV DH, BLACK
  486.        CALL CAR1_RED
  487.        MOV BX, CAR1_1
  488.        CALL CAR1_WHITE
  489.        MOV BX, CAR1_1
  490.        CALL CAR1_GREEN
  491.        INC CAR1_1
  492.        MOV BX, CAR1_1
  493.        MOV DH, RED
  494.        CALL CAR1_RED
  495.        MOV BX, CAR1_1
  496.        MOV DH, GREY
  497.        CALL CAR1_WHITE
  498.        MOV BX, CAR1_1
  499.        MOV DH, GREEN
  500.        CALL CAR1_GREEN
  501.        
  502.        MOV BX, CAR1_2
  503.        MOV DH, BLACK
  504.        CALL CAR1_RED
  505.        MOV BX, CAR1_2
  506.        CALL CAR1_WHITE
  507.        MOV BX, CAR1_2
  508.        CALL CAR1_GREEN
  509.        INC CAR1_2
  510.        MOV BX, CAR1_2
  511.        MOV DH, RED
  512.        CALL CAR1_RED
  513.        MOV BX, CAR1_2
  514.        MOV DH, GREY
  515.        CALL CAR1_WHITE
  516.        MOV BX, CAR1_2
  517.        MOV DH, GREEN
  518.        CALL CAR1_GREEN
  519.        
  520.        MOV BX, CAR1_3
  521.        MOV DH, BLACK
  522.        CALL CAR1_RED
  523.        MOV BX, CAR1_3
  524.        CALL CAR1_WHITE
  525.        MOV BX, CAR1_3
  526.        CALL CAR1_GREEN
  527.        INC CAR1_3
  528.        MOV BX, CAR1_3
  529.        MOV DH, RED
  530.        CALL CAR1_RED
  531.        MOV BX, CAR1_3
  532.        MOV DH, GREY
  533.        CALL CAR1_WHITE
  534.        MOV BX, CAR1_3
  535.        MOV DH, GREEN
  536.        CALL CAR1_GREEN
  537.        RET
  538.        
  539. UPCAR1_1:
  540.        MOV BX, CAR1_1
  541.        MOV DH, BLACK
  542.        CALL CAR1_RED
  543.        MOV BX, CAR1_1
  544.        CALL CAR1_WHITE
  545.        MOV BX, CAR1_1
  546.        CALL CAR1_GREEN
  547.        SUB CAR1_1, 320
  548.        MOV CAR1_1_X, 0
  549.        RET
  550. UPCAR1_2:
  551.        MOV BX, CAR1_2
  552.        MOV DH, BLACK
  553.        CALL CAR1_RED
  554.        MOV BX, CAR1_2
  555.        CALL CAR1_WHITE
  556.        MOV BX, CAR1_2
  557.        CALL CAR1_GREEN
  558.        SUB CAR1_2, 320
  559.        MOV CAR1_2_X, 0
  560.        RET
  561. UPCAR1_3:
  562.        MOV BX, CAR1_3
  563.        MOV DH, BLACK
  564.        CALL CAR1_RED
  565.        MOV BX, CAR1_3
  566.        CALL CAR1_WHITE
  567.        MOV BX, CAR1_3
  568.        CALL CAR1_GREEN
  569.        SUB CAR1_3, 320
  570.        MOV CAR1_3_X, 0
  571.        RET  
  572. ;---------------------Car2---------------------
  573. CAR2:  SUB CAR2_1_X, 2
  574.        CMP CAR2_1_X, 0
  575.        JNE CAR2X1
  576.        CALL DOWNCAR2_1
  577. CAR2X1:SUB CAR2_2_X, 2
  578.        CMP CAR2_2_X, 0
  579.        JNE CAR2X2
  580.        CALL DOWNCAR2_2
  581. CAR2X2:SUB CAR2_3_X, 2
  582.        CMP CAR2_3_X, 0
  583.        JNE CAR2X
  584.        CALL DOWNCAR2_3
  585. CAR2X: MOV BX, CAR2_1
  586.        MOV DH, BLACK
  587.        CALL CAR2_PURPLE
  588.        MOV BX, CAR2_1
  589.        CALL CAR2_LBLUE
  590.        MOV BX, CAR2_1
  591.        CALL CAR2_YELLOW
  592.        SUB CAR2_1, 2
  593.        MOV BX, CAR2_1
  594.        MOV DH, PURPLE
  595.        CALL CAR2_PURPLE
  596.        MOV BX, CAR2_1
  597.        MOV DH, LIGHT_BLUE
  598.        CALL CAR2_LBLUE
  599.        MOV BX, CAR2_1
  600.        MOV DH, YELLOW
  601.        CALL CAR2_YELLOW
  602.        
  603.        MOV BX, CAR2_2
  604.        MOV DH, BLACK
  605.        CALL CAR2_PURPLE
  606.        MOV BX, CAR2_2
  607.        CALL CAR2_LBLUE
  608.        MOV BX, CAR2_2
  609.        CALL CAR2_YELLOW
  610.        SUB CAR2_2, 2
  611.        MOV BX, CAR2_2
  612.        MOV DH, PURPLE
  613.        CALL CAR2_PURPLE
  614.        MOV BX, CAR2_2
  615.        MOV DH, LIGHT_BLUE
  616.        CALL CAR2_LBLUE
  617.        MOV BX, CAR2_2
  618.        MOV DH, YELLOW
  619.        CALL CAR2_YELLOW
  620.        
  621.        MOV BX, CAR2_3
  622.        MOV DH, BLACK
  623.        CALL CAR2_PURPLE
  624.        MOV BX, CAR2_3
  625.        CALL CAR2_LBLUE
  626.        MOV BX, CAR2_3
  627.        CALL CAR2_YELLOW
  628.        SUB CAR2_3, 2
  629.        MOV BX, CAR2_3
  630.        MOV DH, PURPLE
  631.        CALL CAR2_PURPLE
  632.        MOV BX, CAR2_3
  633.        MOV DH, LIGHT_BLUE
  634.        CALL CAR2_LBLUE
  635.        MOV BX, CAR2_3
  636.        MOV DH, YELLOW
  637.        CALL CAR2_YELLOW
  638.        RET     
  639.      
  640. DOWNCAR2_1:
  641.        MOV BX, CAR2_1
  642.        MOV DH, BLACK
  643.        CALL CAR2_PURPLE
  644.        MOV BX, CAR2_1
  645.        CALL CAR2_LBLUE
  646.        MOV BX, CAR2_1
  647.        CALL CAR2_YELLOW
  648.        ADD CAR2_1, 320
  649.        MOV CAR2_1_X, 320
  650.        RET
  651. DOWNCAR2_2:
  652.        MOV BX, CAR2_2
  653.        MOV DH, BLACK
  654.        CALL CAR2_PURPLE
  655.        MOV BX, CAR2_2
  656.        CALL CAR2_LBLUE
  657.        MOV BX, CAR2_2
  658.        CALL CAR2_YELLOW
  659.        ADD CAR2_2, 320
  660.        MOV CAR2_2_X, 320
  661.        RET     
  662. DOWNCAR2_3:
  663.        MOV BX, CAR2_3
  664.        MOV DH, BLACK
  665.        CALL CAR2_PURPLE
  666.        MOV BX, CAR2_3
  667.        CALL CAR2_LBLUE
  668.        MOV BX, CAR2_3
  669.        CALL CAR2_YELLOW
  670.        ADD CAR2_3, 320
  671.        MOV CAR2_3_X, 320
  672.        RET     
  673. ;---------------------Car3---------------------
  674. CAR3:  ADD CAR3_1_X, 4
  675.        CMP CAR3_1_X, 320
  676.        JNE CAR3X1
  677.        CALL UPCAR3_1
  678. CAR3X1:ADD CAR3_2_X, 4
  679.        CMP CAR3_2_X, 320
  680.        JNE CAR3X2
  681.        CALL UPCAR3_2
  682. CAR3X2:ADD CAR3_3_X, 4
  683.        CMP CAR3_3_x, 320
  684.        JNE CAR3X
  685.        CALL UPCAR3_3
  686. CAR3X: MOV BX, CAR3_1      
  687.        MOV DH, BLACK
  688.        CALL CAR3_WHITE
  689.        MOV BX, CAR3_1
  690.        CALL CAR3_GREEN
  691.        MOV BX, CAR3_1
  692.        CALL CAR3_RED       
  693.        ADD CAR3_1, 4       
  694.        MOV BX, CAR3_1      
  695.        MOV DH, GREY
  696.        CALL CAR3_WHITE
  697.        MOV BX, CAR3_1
  698.        MOV DH, GREEN
  699.        CALL CAR3_GREEN
  700.        MOV BX, CAR3_1
  701.        MOV DH, RED
  702.        CALL CAR3_RED
  703.        
  704.        MOV BX, CAR3_2      
  705.        MOV DH, BLACK
  706.        CALL CAR3_WHITE
  707.        MOV BX, CAR3_2
  708.        CALL CAR3_GREEN
  709.        MOV BX, CAR3_2
  710.        CALL CAR3_RED       
  711.        ADD CAR3_2, 4       
  712.        MOV BX, CAR3_2      
  713.        MOV DH, GREY
  714.        CALL CAR3_WHITE
  715.        MOV BX, CAR3_2
  716.        MOV DH, GREEN
  717.        CALL CAR3_GREEN
  718.        MOV BX, CAR3_2
  719.        MOV DH, RED
  720.        CALL CAR3_RED
  721.        
  722.        MOV BX, CAR3_3      
  723.        MOV DH, BLACK
  724.        CALL CAR3_WHITE
  725.        MOV BX, CAR3_3
  726.        CALL CAR3_GREEN
  727.        MOV BX, CAR3_3
  728.        CALL CAR3_RED       
  729.        ADD CAR3_3, 4  
  730.        MOV BX, CAR3_3      
  731.        MOV DH, GREY
  732.        CALL CAR3_WHITE
  733.        MOV BX, CAR3_3
  734.        MOV DH, GREEN
  735.        CALL CAR3_GREEN
  736.        MOV BX, CAR3_3
  737.        MOV DH, RED
  738.        CALL CAR3_RED
  739.        RET
  740.  
  741. UPCAR3_1:
  742.        MOV BX, CAR3_1
  743.        MOV DH, BLACK
  744.        CALL CAR3_WHITE
  745.        MOV BX, CAR3_1
  746.        CALL CAR3_GREEN
  747.        MOV BX, CAR3_1
  748.        CALL CAR3_RED
  749.        SUB CAR3_1, 320
  750.        MOV CAR3_1_X, 0
  751.        RET
  752. UPCAR3_2:      
  753.        MOV BX, CAR3_2
  754.        MOV DH, BLACK
  755.        CALL CAR3_WHITE
  756.        MOV BX, CAR3_2
  757.        CALL CAR3_GREEN
  758.        MOV BX, CAR3_2
  759.        CALL CAR3_RED
  760.        SUB CAR3_2, 320
  761.        MOV CAR3_2_X, 0
  762.        RET
  763. UPCAR3_3:      
  764.        MOV BX, CAR3_3
  765.        MOV DH, BLACK
  766.        CALL CAR3_WHITE
  767.        MOV BX, CAR3_3
  768.        CALL CAR3_GREEN
  769.        MOV BX, CAR3_3
  770.        CALL CAR3_RED
  771.        SUB CAR3_3, 320
  772.        MOV CAR3_3_X, 0
  773.        RET
  774. ;---------------------Car4---------------------
  775. CAR4:  DEC CAR4_1_X
  776.        CMP CAR4_1_X, 0
  777.        JNE CAR4X1
  778.        CALL DOWNCAR4_1
  779. CAR4X1:DEC CAR4_2_X
  780.        CMP CAR4_2_X, 0
  781.        JNE CAR4X2
  782.        CALL DOWNCAR4_2
  783. CAR4X2:DEC CAR4_3_X
  784.        CMP CAR4_3_x, 0
  785.        JNE CAR4X
  786.        CALL DOWNCAR4_3
  787. CAR4X: MOV BX, CAR4_1
  788.        MOV DH, BLACK
  789.        CALL CAR4_WHITE
  790.        MOV BX, CAR4_1
  791.        CALL CAR4_GREEN
  792.        MOV BX, CAR4_1
  793.        CALL CAR4_RED
  794.        DEC CAR4_1
  795.        MOV BX, CAR4_1
  796.        MOV DH, GREY
  797.        CALL CAR4_WHITE
  798.        MOV BX, CAR4_1
  799.        MOV DH, GREEN
  800.        CALL CAR4_GREEN
  801.        MOV BX, CAR4_1
  802.        MOV DH, RED
  803.        CALL CAR4_RED
  804.        
  805.        MOV BX, CAR4_2
  806.        MOV DH, BLACK
  807.        CALL CAR4_WHITE
  808.        MOV BX, CAR4_2
  809.        CALL CAR4_GREEN
  810.        MOV BX, CAR4_2
  811.        CALL CAR4_RED
  812.        DEC CAR4_2
  813.        MOV BX, CAR4_2
  814.        MOV DH, GREY
  815.        CALL CAR4_WHITE
  816.        MOV BX, CAR4_2
  817.        MOV DH, GREEN
  818.        CALL CAR4_GREEN
  819.        MOV BX, CAR4_2
  820.        MOV DH, RED
  821.        CALL CAR4_RED
  822.        
  823.        MOV BX, CAR4_3
  824.        MOV DH, BLACK
  825.        CALL CAR4_WHITE
  826.        MOV BX, CAR4_3
  827.        CALL CAR4_GREEN
  828.        MOV BX, CAR4_3
  829.        CALL CAR4_RED
  830.        DEC CAR4_3
  831.        MOV BX, CAR4_3
  832.        MOV DH, GREY
  833.        CALL CAR4_WHITE
  834.        MOV BX, CAR4_3
  835.        MOV DH, GREEN
  836.        CALL CAR4_GREEN
  837.        MOV BX, CAR4_3
  838.        MOV DH, RED
  839.        CALL CAR4_RED
  840.        RET
  841.        
  842. DOWNCAR4_1:
  843.        MOV BX, CAR4_1
  844.        MOV DH, BLACK
  845.        CALL CAR4_WHITE
  846.        MOV BX, CAR4_1
  847.        CALL CAR4_GREEN
  848.        MOV BX, CAR4_1
  849.        CALL CAR4_RED
  850.        ADD CAR4_1, 320
  851.        MOV CAR4_1_X, 320
  852.        RET
  853. DOWNCAR4_2:
  854.        MOV BX, CAR4_2
  855.        MOV DH, BLACK
  856.        CALL CAR4_WHITE
  857.        MOV BX, CAR4_2
  858.        CALL CAR4_GREEN
  859.        MOV BX, CAR4_2
  860.        CALL CAR4_RED
  861.        ADD CAR4_2, 320
  862.        MOV CAR4_2_X, 320
  863.        RET
  864. DOWNCAR4_3:
  865.        MOV BX, CAR4_3
  866.        MOV DH, BLACK
  867.        CALL CAR4_WHITE
  868.        MOV BX, CAR4_3
  869.        CALL CAR4_GREEN
  870.        MOV BX, CAR4_3
  871.        CALL CAR4_RED
  872.        ADD CAR4_3, 320
  873.        MOV CAR4_3_X, 320
  874.        RET
  875. ;-----------------[Textures]-----------------
  876. ;--------------------FROG--------------------
  877. FROG_GREEN:
  878.        DEC BX
  879.        MOV BYTE PTR[ES:BX], DH
  880.        SUB BX, 3
  881.        MOV CX, 4
  882.        CALL DRAW
  883.        SUB BX, 2
  884.        MOV BYTE PTR[ES:BX], DH
  885.        ADD BX, 320+10
  886.        MOV CX, 2
  887.        CALL DRAW
  888.        SUB BX, 8
  889.        MOV CX, 2
  890.        CALL DRAW  
  891.        ADD BX, 320+11
  892.        MOV BYTE PTR[ES:BX], DH
  893.        SUB BX, 2
  894.        MOV BYTE PTR[ES:BX], DH
  895.        SUB BX, 5
  896.        MOV BYTE PTR[ES:BX], DH
  897.        SUB BX, 2
  898.        MOV BYTE PTR[ES:BX], DH     
  899.        ADD BX, 320+9
  900.        MOV CX, 3
  901.        CALL DRAW
  902.        SUB BX, 4
  903.        MOV CX, 3
  904.        CALL DRAW       
  905.        ADD BX, 320+8
  906.        MOV BYTE PTR[ES:BX], DH
  907.        SUB BX, 5
  908.        MOV BYTE PTR[ES:BX], DH
  909.        ADD BX, 320+7
  910.        MOV CX, 3
  911.        CALL DRAW
  912.        SUB BX, 4
  913.        MOV CX, 3
  914.        CALL DRAW
  915.        ADD BX, 320+10
  916.        MOV BYTE PTR[ES:BX], DH
  917.        SUB BX, 2
  918.        MOV BYTE PTR[ES:BX], DH
  919.        SUB BX, 5
  920.        MOV BYTE PTR[ES:BX], DH
  921.        SUB BX, 2
  922.        MOV BYTE PTR[ES:BX], DH
  923.        ADD BX, 320+10
  924.        MOV CX, 2
  925.        CALL DRAW
  926.        SUB BX, 2
  927.        MOV CX, 4
  928.        CALL DRAW
  929.        SUB BX, 2
  930.        MOV CX, 2
  931.        CALL DRAW
  932.        ADD BX, 320+11
  933.        MOV BYTE PTR[ES:BX], DH
  934.        SUB BX, 9
  935.        MOV BYTE PTR[ES:BX], DH
  936.        RET   
  937.        
  938. FROG_YELLOW:
  939.        ADD BX, 320-4
  940.        MOV LOOPER, 6
  941. FROG_YELLOW1:
  942.        MOV CX, 4
  943.        CALL DRAW
  944.        ADD BX, 320+4
  945.        DEC LOOPER
  946.        JNZ FROG_YELLOW1
  947.        RET
  948.        
  949. FROG_RED:
  950.        ADD BX, 320-3
  951.        MOV BYTE PTR[ES:BX], DH
  952.        SUB BX, 5
  953.        MOV BYTE PTR[ES:BX], DH
  954.        RET
  955. ;------------------CAR_1------------------
  956. CAR1_RED:
  957.        ADD BX, 320*2-2
  958.        MOV LOOPER, 13
  959. CAR1_RED1:
  960.        MOV CX, 2
  961.        CALL DRAW
  962.        ADD BX, 320+2
  963.        DEC LOOPER
  964.        JNZ CAR1_RED1       
  965.        SUB BX, 12
  966.        MOV CX, 11
  967.        CALL DRAW
  968.        SUB BX, 320-11
  969.        MOV CX, 11
  970.        CALL DRAW       
  971.        SUB BX, 320*12-11
  972.        MOV CX, 11
  973.        CALL DRAW
  974.        SUB BX, 320-11
  975.        MOV CX, 11
  976.        CALL DRAW       
  977.        RET
  978.        
  979. CAR1_WHITE:
  980.        MOV CX, 4
  981.        CALL DRAW  
  982.        ADD BX, 320+4
  983.        MOV CX, 4
  984.        CALL DRAW
  985.        SUB BX, 320     
  986.        MOV LOOPER, 17
  987. CAR1_WHITE1:
  988.        MOV CX, 2
  989.        CALL DRAW
  990.        ADD BX, 320+2
  991.        DEC LOOPER
  992.        JNZ CAR1_WHITE1     
  993.        SUB BX, 320*13-4
  994.        MOV CX, 4
  995.        CALL DRAW
  996.        ADD BX, 320*2+4
  997.        MOV CX, 4
  998.        CALL DRAW
  999.        ADD BX, 320*4+4
  1000.        MOV CX, 4
  1001.        CALL DRAW
  1002.        ADD BX, 320*2+4
  1003.        MOV CX, 4
  1004.        CALL DRAW       
  1005.        ADD BX, 320*3+4
  1006.        MOV CX, 4
  1007.        CALL DRAW
  1008.        ADD BX, 320+4
  1009.        MOV CX, 4
  1010.        CALL DRAW       
  1011.        SUB BX, 320+8
  1012.        MOV LOOPER2, 2
  1013. CAR1_WHITE2:       
  1014.        MOV LOOPER1, 2
  1015. CAR1_WHITE3:
  1016.        MOV LOOPER, 6
  1017. CAR1_WHITE4:
  1018.        SUB BX, 2
  1019.        MOV BYTE PTR[ES:BX], DH
  1020.        DEC LOOPER
  1021.        JNZ CAR1_WHITE4
  1022.        SUB BX, 320-12
  1023.        DEC LOOPER1
  1024.        JNZ CAR1_WHITE3     
  1025.        SUB BX, 320*11
  1026.        DEC LOOPER2
  1027.        JNZ CAR1_WHITE2  
  1028.        ADD BX, 320*15+2
  1029.        MOV CX, 16
  1030.        CALL DRAW
  1031.        ADD BX, 320+16
  1032.        MOV CX, 17
  1033.        CALL DRAW       
  1034.        ADD BX, 320+17
  1035.        MOV LOOPER, 5
  1036. CAR1_WHITE5:
  1037.        MOV CX, 18
  1038.        CALL DRAW
  1039.        ADD BX, 320+18
  1040.        DEC LOOPER
  1041.        JNZ CAR1_WHITE5     
  1042.        MOV CX, 17
  1043.        CALL DRAW       
  1044.        ADD BX, 320+17
  1045.        MOV CX, 16
  1046.        CALL DRAW
  1047.        RET
  1048.        
  1049. CAR1_GREEN:
  1050.        ADD BX, 320*2-6
  1051.        MOV CX, 5
  1052.        CALL DRAW
  1053.        ADD BX, 320+1
  1054.        MOV BYTE PTR[ES:BX], DH
  1055.        SUB BX, 5
  1056.        MOV BYTE PTR[ES:BX], DH
  1057.        SUB BX, 8
  1058.        MOV BYTE PTR[ES:BX], DH  
  1059.        ADD BX, 320*10
  1060.        MOV BYTE PTR[ES:BX], DH
  1061.        ADD BX, 8
  1062.        MOV BYTE PTR[ES:BX], DH
  1063.        ADD BX, 5
  1064.        MOV BYTE PTR[ES:BX], DH     
  1065.        ADD BX, 320+4
  1066.        MOV CX, 5
  1067.        CALL DRAW       
  1068.        SUB BX, 320*4-1
  1069.        MOV CX, 2
  1070.        CALL DRAW
  1071.        SUB BX, 320-2
  1072.        MOV CX, 2
  1073.        CALL DRAW  
  1074.        SUB BX, 320*2-2
  1075.        MOV CX, 2
  1076.        CALL DRAW
  1077.        SUB BX, 320-2
  1078.        MOV CX, 2
  1079.        CALL DRAW  
  1080.        SUB BX, 2
  1081.        MOV CX, 3
  1082.        CALL DRAW
  1083.        ADD BX, 320+3       
  1084.        MOV LOOPER, 3
  1085. CAR1_GREEN1:
  1086.        MOV BYTE PTR[ES:BX], DH
  1087.        SUB BX, 3
  1088.        MOV CX, 7
  1089.        CALL DRAW
  1090.        ADD BX, 320+10
  1091.        DEC LOOPER
  1092.        JNZ CAR1_GREEN1
  1093.        MOV CX, 3
  1094.        CALL DRAW
  1095.        RET            
  1096. ;------------------CAR_2------------------
  1097. CAR2_PURPLE:
  1098.        ADD BX, 320+23
  1099.        MOV CX, 6
  1100.        CALL DRAW
  1101.        SUB BX, 6
  1102.        MOV CX, 6
  1103.        CALL DRAW       
  1104.        ADD BX, 320+19
  1105.        MOV CX, 8
  1106.        CALL DRAW
  1107.        SUB BX, 4
  1108.        MOV CX, 8
  1109.        CALL DRAW       
  1110.        ADD BX, 320+21
  1111.        MOV CX, 22
  1112.        CALL DRAW       
  1113.        SUB BX, 2
  1114.        MOV LOOPER, 8
  1115. CAR2_PURPLE1:
  1116.        ADD BX, 320+25
  1117.        MOV CX, 25
  1118.        CALL DRAW
  1119.        DEC LOOPER
  1120.        JNZ CAR2_PURPLE1    
  1121.        ADD BX, 320+24
  1122.        MOV CX, 22
  1123.        CALL DRAW       
  1124.        ADD BX, 320+21
  1125.        MOV CX, 8
  1126.        CALL DRAW
  1127.        SUB BX, 4
  1128.        MOV CX, 8
  1129.        CALL DRAW       
  1130.        ADD BX, 320+19
  1131.        MOV CX, 6
  1132.        CALL DRAW
  1133.        SUB BX, 6
  1134.        MOV CX, 6
  1135.        CALL DRAW
  1136.        RET
  1137.        
  1138. CAR2_LBLUE:
  1139.        ADD BX, 320+5
  1140.        MOV LOOPER, 4
  1141. CAR2_LBLUE1:
  1142.        MOV CX, 2
  1143.        CALL DRAW
  1144.        ADD BX, 320+1
  1145.        DEC LOOPER
  1146.        JNZ CAR2_LBLUE1     
  1147.        MOV LOOPER, 6
  1148. CAR2_LBLUE2:
  1149.        MOV CX, 2
  1150.        CALL DRAW
  1151.        ADD BX, 320+2
  1152.        DEC LOOPER
  1153.        JNZ CAR2_LBLUE2  
  1154.        INC BX
  1155.        MOV LOOPER, 4
  1156. CAR2_LBLUE3:       
  1157.        MOV CX, 2
  1158.        CALL DRAW
  1159.        ADD BX, 320+3
  1160.        DEC LOOPER
  1161.        JNZ CAR2_LBLUE3     
  1162.        SUB BX, 320*12-6
  1163.        MOV CX, 4
  1164.        CALL DRAW
  1165.        ADD BX, 320+3
  1166.        MOV CX, 4
  1167.        CALL DRAW
  1168.        DEC BX      
  1169.        MOV LOOPER, 6
  1170. CAR2_LBLUE4:
  1171.        ADD BX, 320+4
  1172.        MOV CX, 4
  1173.        CALL DRAW
  1174.        DEC LOOPER
  1175.        JNZ CAR2_LBLUE4     
  1176.        ADD BX, 320+5
  1177.        MOV CX, 4
  1178.        CALL DRAW       
  1179.        ADD BX, 320+5
  1180.        MOV CX, 4
  1181.        CALL DRAW       
  1182.        SUB BX, 320-19
  1183.        MOV CX, 3
  1184.        CALL DRAW       
  1185.        SUB BX, 320+1
  1186.        MOV LOOPER, 6
  1187. CAR2_LBLUE5:
  1188.        MOV CX, 4
  1189.        CALL DRAW
  1190.        SUB BX, 320-4
  1191.        DEC LOOPER
  1192.        JNZ CAR2_LBLUE5     
  1193.        ADD BX, 4
  1194.        MOV CX, 3
  1195.        CALL DRAW
  1196.        RET
  1197.        
  1198. CAR2_YELLOW:
  1199.        ADD BX, 22
  1200.        MOV CX, 4
  1201.        CALL DRAW
  1202.        SUB BX, 8
  1203.        MOV CX, 4
  1204.        CALL DRAW
  1205.        ADD BX, 320*15+16
  1206.        MOV CX, 4
  1207.        CALL DRAW
  1208.        SUB BX, 8
  1209.        MOV CX, 4
  1210.        CALL DRAW
  1211.        RET
  1212. ;------------------CAR_3------------------
  1213. CAR3_WHITE:
  1214.        SUB BX, 320*4+4
  1215.        MOV CX, 17
  1216.        CALL DRAW       
  1217.        ADD BX, 320+18
  1218.        MOV CX, 19
  1219.        CALL DRAW       
  1220.        ADD BX, 320+20
  1221.        MOV CX, 14
  1222.        CALL DRAW
  1223.        SUB BX, 4       
  1224.        MOV LOOPER, 3
  1225. CAR3_WHITE1:
  1226.        ADD BX, 320+19
  1227.        MOV CX, 19
  1228.        CALL DRAW
  1229.        DEC LOOPER
  1230.        JNZ CAR3_WHITE1     
  1231.        ADD BX, 320+18
  1232.        MOV CX, 14
  1233.        CALL DRAW       
  1234.        ADD BX, 320+13
  1235.        MOV CX, 19
  1236.        CALL DRAW       
  1237.        ADD BX, 320+18
  1238.        MOV CX, 17
  1239.        CALL DRAW       
  1240.        SUB BX, 320*4-21
  1241.        MOV BYTE PTR[ES:BX], DH
  1242.        RET
  1243.        
  1244. CAR3_GREEN:
  1245.        SUB BX, 320*5+8
  1246.        MOV BYTE PTR[ES:BX], DH
  1247.        SUB BX, 10
  1248.        MOV BYTE PTR[ES:BX], DH     
  1249.        ADD BX, 320*3+10
  1250.        MOV CX, 4
  1251.        CALL DRAW
  1252.        SUB BX, 4
  1253.        MOV CX, 8
  1254.        CALL DRAW       
  1255.        ADD BX, 320+17
  1256.        MOV CX, 4
  1257.        CALL DRAW  
  1258.        ADD BX, 320+5
  1259.        MOV CX, 6
  1260.        CALL DRAW       
  1261.        ADD BX, 320+5
  1262.        MOV CX, 4
  1263.        CALL DRAW  
  1264.        ADD BX, 320+3
  1265.        MOV CX, 4
  1266.        CALL DRAW
  1267.        SUB BX, 4
  1268.        MOV CX, 8
  1269.        CALL DRAW       
  1270.        ADD BX, 320*3+16
  1271.        MOV BYTE PTR[ES:BX], DH
  1272.        SUB BX, 10
  1273.        MOV BYTE PTR[ES:BX], DH
  1274.        RET
  1275.      
  1276. CAR3_RED:
  1277.        SUB BX, 320*8+16
  1278.        MOV CX, 5
  1279.        CALL DRAW       
  1280.        MOV LOOPER, 2
  1281. CAR3_RED1:
  1282.        ADD BX, 320+15
  1283.        MOV CX, 5
  1284.        CALL DRAW
  1285.        SUB BX, 5
  1286.        MOV CX, 5
  1287.        CALL DRAW
  1288.        DEC LOOPER
  1289.        JNZ CAR3_RED1       
  1290.        ADD BX, 320*5+7
  1291.        MOV LOOPER, 3
  1292. CAR3_RED2:
  1293.        MOV BYTE PTR[ES:BX], DH
  1294.        SUB BX, 3
  1295.        MOV BYTE PTR[ES:BX], DH
  1296.        SUB BX, 3
  1297.        MOV BYTE PTR[ES:BX], DH
  1298.        ADD BX, 320+6
  1299.        DEC LOOPER
  1300.        JNZ CAR3_RED2       
  1301.        ADD BX, 320*4+8
  1302.        MOV LOOPER, 2
  1303. CAR3_RED3:
  1304.        MOV CX, 5
  1305.        CALL DRAW
  1306.        SUB BX, 5
  1307.        MOV CX, 5
  1308.        CALL DRAW
  1309.        ADD BX, 320+15
  1310.        DEC LOOPER
  1311.        JNZ CAR3_RED3       
  1312.        SUB BX, 10
  1313.        MOV CX, 5
  1314.        CALL DRAW       
  1315.        RET
  1316. ;------------------CAR_4------------------
  1317. CAR4_WHITE:
  1318.        ADD BX, 42
  1319.        MOV CX, 29
  1320.        CALL DRAW
  1321.        SUB BX, 2
  1322.        MOV CX, 7
  1323.        CALL DRAW       
  1324.        ADD BX, 320+38
  1325.        MOV CX, 29
  1326.        CALL DRAW
  1327.        SUB BX, 2
  1328.        MOV CX, 8
  1329.        CALL DRAW
  1330.        DEC BX          
  1331.        MOV LOOPER, 8
  1332. CAR4_WHITE1:
  1333.        ADD BX, 320+40
  1334.        MOV CX, 29
  1335.        CALL DRAW
  1336.        SUB BX, 2
  1337.        MOV CX, 9
  1338.        CALL DRAW
  1339.        DEC LOOPER
  1340.        JNZ CAR4_WHITE1     
  1341.        ADD BX, 320+40
  1342.        MOV CX, 29
  1343.        CALL DRAW
  1344.        SUB BX, 2
  1345.        MOV CX, 8
  1346.        CALL DRAW       
  1347.        ADD BX, 320+39
  1348.        MOV CX, 29
  1349.        CALL DRAW
  1350.        SUB BX, 2
  1351.        MOV CX, 7
  1352.        CALL DRAW
  1353.        RET
  1354.        
  1355. CAR4_GREEN:    
  1356.        SUB BX, 320*2-40
  1357.        MOV LOOPER1, 2
  1358. CAR4_GREEN2:
  1359.        MOV LOOPER, 2
  1360. CAR4_GREEN1:
  1361.        MOV CX, 5
  1362.        CALL DRAW
  1363.        SUB BX, 15
  1364.        MOV CX, 5
  1365.        CALL DRAW
  1366.        SUB BX, 4
  1367.        MOV CX, 5
  1368.        CALL DRAW
  1369.        ADD BX, 320+34
  1370.        DEC LOOPER
  1371.        JNZ CAR4_GREEN1
  1372.        ADD BX, 320*12
  1373.        DEC LOOPER1
  1374.        JNZ CAR4_GREEN2
  1375.        RET
  1376.        
  1377. CAR4_RED:
  1378.        ADD BX, 4
  1379.        MOV CX, 3
  1380.        CALL DRAW       
  1381.        ADD BX, 320+2
  1382.        MOV CX, 3
  1383.        CALL DRAW
  1384.        DEC BX      
  1385.        MOV LOOPER, 8
  1386. CAR4_RED1:
  1387.        ADD BX, 320+3
  1388.        MOV CX, 3
  1389.        CALL DRAW
  1390.        DEC LOOPER
  1391.        JNZ CAR4_RED1       
  1392.        ADD BX, 320+4
  1393.        MOV CX, 3
  1394.        CALL DRAW       
  1395.        ADD BX, 320+4
  1396.        MOV CX, 3
  1397.        CALL DRAW       
  1398.        SUB BX, 320*7-12
  1399.        MOV LOOPER, 4
  1400. CAR4_RED2:
  1401.        MOV CX, 2
  1402.        CALL DRAW
  1403.        ADD BX, 320+2
  1404.        DEC LOOPER
  1405.        JNZ CAR4_RED2
  1406.        RET
  1407. ;------------------BACKGROUND------------------    
  1408. BACKGROUND:    
  1409. ;BOTTOM SIDEWALK
  1410.        MOV DH, PURPLE
  1411.        MOV BX, 320*199+319
  1412.        MOV CX, 320*20
  1413.        CALL DRAW
  1414. ;UPPER SIDEWALK  
  1415.        MOV BX, 320*98+319
  1416.        MOV CX, 320*20
  1417.        CALL DRAW
  1418. ;WATER     
  1419.        MOV DH, BLUE
  1420.        MOV CX, 320*76
  1421.        CALL DRAW
  1422. ;ROAD
  1423.        MOV DH, WHITE
  1424.        MOV BX, 320*160+9
  1425.        MOV LOOPER1, 3
  1426. ROAD:  MOV LOOPER, 5
  1427. ROADX: SUB BX, 20
  1428.        MOV CX, 44
  1429.        CALL DRAW
  1430.        DEC LOOPER
  1431.        JNZ ROADX
  1432.        SUB BX, 320*19
  1433.        DEC LOOPER1
  1434.        JNZ ROAD
  1435. ;GRASS
  1436.        MOV DH, GRASS_GREEN
  1437.        MOV BX, 320*17+319
  1438.        MOV LOOPER, 15
  1439. GRASS1:MOV CX, 50
  1440.        CALL DRAW
  1441.        SUB BX, 320-50
  1442.        DEC LOOPER
  1443.        JNZ GRASS1
  1444.        MOV CX, 320*3
  1445.        CALL DRAW
  1446.        MOV BX, 320*17+49
  1447.        MOV LOOPER, 15
  1448. GRASS2:MOV CX, 50
  1449.        CALL DRAW
  1450.        SUB BX, 320-50
  1451.        DEC LOOPER
  1452.        JNZ GRASS2
  1453. ;LILYPADS
  1454.        MOV BX, 320*17+243
  1455.        MOV LOOPER, 5
  1456. LP1:   MOV CX, 8
  1457.        CALL DRAW
  1458.        SUB BX, 320-11
  1459.        MOV CX, 14
  1460.        CALL DRAW
  1461.        SUB BX, 320-15
  1462.        MOV CX, 16
  1463.        CALL DRAW
  1464.        SUB BX, 320-17
  1465.        MOV CX, 18
  1466.        CALL DRAW
  1467.        DEC BX
  1468.        MOV LOOPER1, 4
  1469. LP2:   SUB BX, 320-20
  1470.        MOV CX, 20
  1471.        CALL DRAW
  1472.        DEC LOOPER1
  1473.        JNZ LP2
  1474.        SUB BX, 320-19
  1475.        MOV CX, 18
  1476.        CALL DRAW
  1477.        SUB BX, 320-17
  1478.        MOV CX, 16
  1479.        CALL DRAW
  1480.        SUB BX, 320-15
  1481.        MOV CX, 14
  1482.        CALL DRAW
  1483.        SUB BX, 320-11
  1484.        MOV CX, 8
  1485.        CALL DRAW
  1486.        ADD BX, 320*11-32
  1487.        DEC LOOPER
  1488.        JNZ LP1
  1489.        RET
  1490.        
  1491. MENU:  MOV AH, 0    ;-
  1492.        MOV AL, 13H  ;- GRAPHICS
  1493.        INT 10H      ;- CARD
  1494.        PUSH 0A000H  ;-
  1495.        POP ES       ;-  
  1496.        CALL NEWLINE
  1497.        LEA DX, FROGGER
  1498.        MOV AH, 9
  1499.        INT 21H
  1500.        CALL NEWLINE
  1501.        CALL NEWLINE
  1502.        CALL NEWLINE
  1503.        LEA DX, LINE1
  1504.        MOV AH, 9
  1505.        INT 21H  
  1506.        CALL NEWLINE
  1507.        CALL NEWLINE
  1508.        CALL NEWLINE    
  1509.        LEA DX, LINE2
  1510.        MOV AH, 9
  1511.        INT 21H  
  1512.        CALL NEWLINE
  1513.        CALL NEWLINE
  1514.        CALL NEWLINE    
  1515.        LEA DX, LINE3
  1516.        MOV AH, 9
  1517.        INT 21H
  1518.        MOV LOOPER, 13
  1519. MENUX: CALL NEWLINE
  1520.        DEC LOOPER
  1521.        JNZ MENUX
  1522.        LEA DX, CREDITS
  1523.        MOV AH, 9
  1524.        INT 21H     
  1525. KELETM:MOV AH, 7
  1526.        INT 21H
  1527.        CMP AL, 31H ;1
  1528.        JE MENURET
  1529.        CMP AL, 32H ;2
  1530.        JE INSTRUCT
  1531.        CMP AL, 33H ;3
  1532.        JE EXIT
  1533.        JMP KELETM      
  1534. MENURET:RET
  1535. EXIT:  MOV AH, 0    ;-
  1536.        MOV AL, 13H  ;- GRAPHICS
  1537.        INT 10H      ;- CARD
  1538.        PUSH 0A000H  ;-
  1539.        POP ES       ;-
  1540.        MOV AX, 4C00H
  1541.        INT 21H     
  1542. INSTRUCT:
  1543.        MOV AH, 0    ;-
  1544.        MOV AL, 13H  ;- GRAPHICS
  1545.        INT 10H      ;- CARD
  1546.        PUSH 0A000H  ;-
  1547.        POP ES       ;-
  1548.        CALL NEWLINE
  1549.        LEA DX, INSTRUCT0
  1550.        MOV AH, 9
  1551.        INT 21H  
  1552.        CALL NEWLINE
  1553.        CALL NEWLINE
  1554.        LEA DX, INSTRUCT01
  1555.        MOV AH, 9
  1556.        INT 21H
  1557.        CALL NEWLINE
  1558.        CALL NEWLINE
  1559.        CALL NEWLINE
  1560.        LEA DX, INSTRUCT1
  1561.        MOV AH, 9
  1562.        INT 21H     
  1563.        CALL NEWLINE
  1564.        CALL NEWLINE
  1565.        LEA DX, INSTRUCT2
  1566.        MOV AH, 9
  1567.        INT 21H     
  1568.        CALL NEWLINE
  1569.        CALL NEWLINE
  1570.        LEA DX, INSTRUCT3
  1571.        MOV AH, 9
  1572.        INT 21H     
  1573.        CALL NEWLINE
  1574.        CALL NEWLINE
  1575.        LEA DX, INSTRUCT4
  1576.        MOV AH, 9
  1577.        INT 21H  
  1578.        CALL NEWLINE
  1579.        CALL NEWLINE
  1580.        LEA DX, INSTRUCT5
  1581.        MOV AH, 9
  1582.        INT 21H     
  1583.        CALL NEWLINE
  1584.        CALL NEWLINE
  1585.        CALL NEWLINE
  1586.        LEA DX, INSTRUCT6
  1587.        MOV AH, 9
  1588.        INT 21H  
  1589.        MOV AH, 7
  1590.        INT 21H
  1591.        JMP MENU
  1592.        
  1593. RESET: MOV ABX, 320*188+165
  1594.        MOV MOVE_Y, 0
  1595.        MOV MOVE_X, 165
  1596.        MOV LIVES, 3
  1597.        MOV LILYPAD1, 0
  1598.        MOV LILYPAD2, 0
  1599.        MOV LILYPAD3, 0
  1600.        MOV LILYPAD4, 0
  1601.        MOV LILYPAD5, 0
  1602.        MOV CAR1_1, 320*161
  1603.        MOV CAR1_1_X, 0
  1604.        MOV CAR1_2, 320*161+100
  1605.        MOV CAR1_2_X, 100
  1606.        MOV CAR1_3, 320*161+200
  1607.        MOV CAR1_3_X, 200
  1608.        MOV CAR2_1, 320*141+320
  1609.        MOV CAR2_1_X, 320
  1610.        MOV CAR2_2, 320*141+220
  1611.        MOV CAR2_2_X, 220
  1612.        MOV CAR2_3, 320*141+120
  1613.        MOV CAR2_3_X, 120
  1614.        MOV CAR3_1, 320*129
  1615.        MOV CAR3_1_X, 0
  1616.        MOV CAR3_2, 320*129+100
  1617.        MOV CAR3_2_X, 100
  1618.        MOV CAR3_3, 320*129+200
  1619.        MOV CAR3_3_X, 200
  1620.        MOV CAR4_1, 320*103+320
  1621.        MOV CAR4_1_X, 320
  1622.        MOV CAR4_2, 320*103+220
  1623.        MOV CAR4_2_X, 220
  1624.        MOV CAR4_3, 320*103+120
  1625.        MOV CAR4_3_X, 120
  1626.        RET
  1627.        
  1628. NEWLINE:
  1629.        MOV DL, 10
  1630.        MOV AH, 02H
  1631.        INT 21H
  1632.        RET
  1633. CODE ENDS
  1634. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement