Add mastermind game skeleton.
[TD_IML.git] / project / mips1.asm
1 .data
2
3 Welcome1:
4 .ascii "\n Hello! you are about to play the mastermind"
5 .ascii " guessing and logic game,Bulls & Cows!\n"
6 .ascii "The Computer will generate a secret number made of 4 unique"
7 .ascii " integer numbers. You have to guess the number!\n"
8 .ascii "Using the number of Bulls and Cows you get to find out what"
9 .asciiz " the secret number is!\n"
10
11 Welcome2:
12 .ascii "\nEvery digit you enter that is both correct and in the right"
13 .ascii " location is a BULL. When you get 4 BULLS, YOU WIN!\n\n"
14 .ascii "Every digit you enter that is correct, but not in the right"
15 .asciiz " location is a COW!\n"
16
17 confirm:
18 .ascii "\n Select \n"
19 .ascii "YES - if you are ready to guess\n"
20 .ascii "NO - to see the rules again\n"
21 .asciiz "Cancel - to exit the Game\n"
22
23 msg_asknum:
24 .asciiz "\nEnter your game choice\n"
25
26 .text
27
28 main:
29
30 # show intro and rules
31 main_welcome:
32 la $a0,Welcome1
33 li $a1,1
34 li $v0,55
35 syscall
36
37 la $a0,Welcome2
38 li $v0,55
39 syscall
40
41 # ask user to select an action (i.e. enter data, reread rules, exit program)
42 main_confirm:
43 la $a0,confirm
44 li $v0,50
45 syscall
46
47 # the return is in a0: 0=yes, 1=no, 2=cancel
48 beq $a0,0,main_asknum
49 beq $a0,2,main_exit
50 b main_welcome
51
52 # ask user for the next game input
53 # NOTE: this is a prompt for an integer number
54 main_asknum:
55 li $v0,51
56 la $a0,msg_asknum
57 syscall
58
59 beq $a1,-1,main_asknum # syntax error
60 beq $a1,-2,main_confirm # cancel
61 beq $a1,-3,main_asknum # ok, but no data
62
63 jal do_something # do something with the number in a0 ...
64
65 j main_asknum
66
67 main_exit:
68 li $v0,10
69 syscall
70
71 # do_something -- process user's input
72 #
73 # arguments:
74 # a0 -- number the user entered
75 do_something:
76 jr $ra # return