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