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