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