File: PLUSMOIN.z80 - Tab length: 1 2 4 8 - Lines: on off - No wrap: on off

001:  .nolist
002: #include "ion.inc"
003: 
004: #define nombrecherche saferam1
005: #define n_essais nombrecherche+2
006: #define numerau_essaye n_essais+1
007: 
008: 
009:  .list
010: #ifdef TI83P
011:  .org progstart-2
012:  .db $BB,$6D
013: #else
014:  .org progstart
015: #endif
016:  ret
017:  jr nc,start
018:  .db "PLUSMOIN2",0
019:  
020: start:
021: 
022:  bcall _clrlcdf
023:  ld b,28
024:  call ionRandom
025:  ld h,a
026:  ld b,255
027:  call ionRandom
028:  ld l,a
029:  ld (nombrecherche),hl
030:  ld de,0
031:  bcall _cphlde
032:  jp z,start
033:  ld hl,(nombrecherche)
034:  ld de,10000
035:  bcall _cphlde
036:  jp p,start
037: 
038: 
039:  ld hl,1
040:  ld (numerau_essaye),hl
041:  ld a,0
042:  ld (n_essais),a
043: 
044: 
045:  ld hl,$0000
046:  ld (pencol),hl
047:  ld hl,interval
048:  bcall _vputs
049: 
050:  ld hl,$3802
051:  ld (pencol),hl
052:  ld hl,nombredecoups
053:  bcall _vputs
054: boucle:
055:  ld hl,$0001
056:  ld (currow),hl
057:  ld hl,(numerau_essaye)
058:  bcall _disphl
059:  bcall _getkey
060: 
061: 
062:  cp 1
063:  call z,droite
064:  cp 2
065:  call z,gauche
066:  cp 3
067:  call z,haut
068:  cp 4
069:  call z,bas
070:  cp 5
071:  jp z,entrer
072: 
073: 
074:  cp 9
075:  jp nz,boucle
076:  ret
077: 
078: droite:
079:  ld hl,(numerau_essaye)
080:  ld de,20
081:  add hl,de
082:  ld de,10001
083:  bcall _cphlde
084:  jp m,droite_suite
085:  dec de; de=10 000
086:  sbc hl,de
087: droite_suite:
088:  ld (numerau_essaye),hl
089:  ret
090: 
091: 
092: gauche:
093:  ld hl,(numerau_essaye)
094:  ld de,20
095:  or a
096:  sbc hl,de
097:  call z,gauche0
098:  call m,gauche0
099:  ld (numerau_essaye),hl
100:  ret
101: 
102: gauche0:
103:  ld de,10000
104:  add hl,de
105:  ret
106: 
107: 
108: haut:
109:  ld de,10000
110:  ld hl,(numerau_essaye)
111:  call _cphlde
112:  call z,haut10000
113: 
114:  ld hl,numerau_essaye
115:  inc (hl)
116:  ret
117: 
118: 
119: haut10000:
120:  ld hl,1
121:  ld (numerau_essaye),hl
122:  ret
123: 
124: bas:
125:  ld hl,(numerau_essaye)
126:  dec hl
127:  ld de,0
128:  bcall _cphlde
129:  jp nz,bas_suite
130:  ld hl,10000
131: bas_suite:
132:  ld (numerau_essaye),hl
133:  ret
134: 
135: 
136: 
137: entrer:
138:  ld a,(n_essais)
139:  inc a
140:  ld (n_essais),a
141: 
142:  ld hl,$0A07
143:  ld (currow),hl
144:  
145:  ld l,a
146:  ld h,0
147:  bcall _disphl
148: 
149:  ld hl,(numerau_essaye)
150:  ld e,l
151:  ld d,h
152:  ld hl,(nombrecherche)
153:  call _cphlde
154:  jp z,victoire
155:  jp p,plus
156: 
157:  ld hl,$0F00
158:  ld (pencol),hl
159:  ld hl,moin
160:  bcall _vputs
161:  jp boucle
162: 
163: victoire:
164:  ld hl,$0204
165:  ld (currow),hl
166:  ld hl,vict
167:  bcall _puts
168: 
169:  ld hl,$0002
170:  ld (currow),hl
171:  ld hl,victeff
172:  bcall _puts
173:  bcall _getkey
174:  ret
175: 
176: plus:
177:  ld hl,$0F00
178:  ld (pencol),hl
179:  ld hl,plu
180:  bcall _vputs
181:  jp boucle
182: 
183: 
184: 
185: 
186: interval:
187:  .db"C'est entre 1 et 10 000",0
188: nombredecoups:
189:  .db"Nombre de coups :",0
190: vict:
191:  .db"Victoire !!!",0
192: victeff:
193:  .db"              ",0
194: moin:
195:  .db"C'est moins!",0
196: plu:
197:  .db"C'est plus!     ",0
198: .end