aaa Le 31/08/2007 à 11:55 donc si j'ai bien compris il faut que je recopie ce que j'ai mis en gras puis je fais avec send(9prgm et ca marche ?
0001 0000 #define TI83
0002 0000 ;-------------= Fall Down =-------------
0003 0000 ; Author: Ian Graf (port)
0004 0000 ; (ian_graf@geocities.com)
0005 0000 ; Florent Dhordain (original)
0006 0000 ; (flo.dh@usa.net)
0007 0000 ; Ahmed El-Helw (original)
0008 0000 ; (ahmedre@bellsouth.net)
0009 0000 ; Version: 1.5
0010 0000 ; Platform: ION
0011 0000 ; Date: 11/3/99
0012 0000 ;---------------------------------------
0013 0000
0014 0000
0015 0000 #define ballx saferam1 ; 1 byte - ball x coord
0016 0000 #define bally ballx+1 ; 1 byte - ball y coord
0017 0000 #define blockcnt bally+1 ; 1 byte - num blocks
0018 0000 #define score blockcnt+1 ; 2 bytes - score
0019 0000 #define tmpx score+2 ; 1 byte - temp x coord
0020 0000
0021 0000
0022 0000 ;---------------= header =--------------
0023 0000
0026 0000 .list
0027 0000~ #ifdef TI83P
0028 0000~ .org progstart-2
0029 0000~ .db $BB,$6D
0030 0000 #else
0031 9327 .org progstart
0032 9327 #endif
0033 9327 C9 ret
0034 9328 30 09 jr nc,start_of_program
0035 932A 46616C6C446F .db "FallDown",0
0035 9330 776E00
0036 9333
0037 9333
0038 9333 start_of_program:
0039 9333 CD 55 47 bcall(_clrlcdf) ;
0040 9336 11 00 04 ld de,4*256+0 ;
0041 9339 ED 53 0C 80 ld (currow),de ;
0042 933D 21 51 95 ld hl,titlestr ;
0043 9340 CD 0D 47 bcall(_puts) ;
0044 9343 01 37 00 ld bc,0*256+55 ; draw line
0045 9346 11 37 5E ld de,94*256+55 ;
0046 9349 CD E0 4A bcall(_darkline) ;
0047 934C 11 01 0A ld de,10*256+1 ; write "By AE, FD, and IG"
0048 934F ED 53 52 82 ld (pencol),de ;
0049 9353 21 5A 95 ld hl,authorstr ;
0050 9356 CD 81 47 bcall(_vputs) ;
0051 9359 11 04 16 ld de,22*256+4 ; write "2nd - Start"
0052 935C ED 53 52 82 ld (pencol),de ;
0053 9360 CD 81 47 bcall(_vputs) ;
0054 9363 11 04 1D ld de,29*256+4 ; write "ALPHA - Speed:"
0055 9366 ED 53 52 82 ld (pencol),de ;
0056 936A CD 81 47 bcall(_vputs) ;
0057 936D 11 04 24 ld de,36*256+4 ; write "CLEAR - Exit:"
0058 9370 ED 53 52 82 ld (pencol),de ;
0059 9374 CD 81 47 bcall(_vputs) ;
0060 9377 11 01 37 ld de,55*256+1 ; write "High: "
0061 937A ED 53 52 82 ld (pencol),de ;
0062 937E CD 81 47 bcall(_vputs) ;
0063 9381 2A AC 95 ld hl,(high) ;
0064 9384 CD 7C 4A bcall(_setxxxxop2) ; write high score
0065 9387 CD C2 41 bcall(_op2toop1) ;
0066 938A 3E 05 ld a,5 ;
0067 938C CD D4 51 bcall(_dispop1a) ;
0068 938F 11 35 1D updatm: ld de,29*256+53 ; write speed
0069 9392 ED 53 52 82 ld (pencol),de ;
0070 9396 3A AE 95 ld a,(speed) ;
0071 9399 CD 74 4A bcall(_setxxop1) ;
0072 939C CD D4 51 bcall(_dispop1a) ;
0073 939F CD 18 4A menul: bcall(_getk) ;
0074 93A2 FE 0F cp 15 ; [CLEAR]
0075 93A4 C8 ret z ; quit
0076 93A5 FE 30 cp 48 ; [ALPHA]
0077 93A7 20 09 jr nz,nchngs ;
0078 93A9 21 AE 95 ld hl,speed ; change num players
0079 93AC 7E ld a,(hl) ;
0080 93AD EE 03 xor %00000011 ;
0081 93AF 77 ld (hl),a ;
0082 93B0 18 DD jr updatm ;
0083 93B2 FE 36 nchngs: cp 54 ; [2nd]
0084 93B4 20 E9 jr nz,menul ;
0085 93B6 CD 5B 51 bcall(_cleargbuf) ;
0086 93B9 21 00 00 ld hl,0 ; reset score
0087 93BC 22 68 82 ld (score),hl ;
0088 93BF 21 65 82 ld hl,ballx ;
0089 93C2 36 2C ld (hl),44 ; ballx = 44
0090 93C4 23 inc hl ;
0091 93C5 36 00 ld (hl),0 ; bally = 0
0092 93C7 CD 4E 94 init: call randomblocks ;
0093 93CA 2A 68 82 ld hl,(score) ;
0094 93CD 29 add hl,hl ; hl = score*2
0095 93CE 3E 18 ld a,24 ;
0096 93D0 94 sub h ;
0097 93D1 47 ld b,a ;
0098 93D2 78 sloop: ld a,b ;
0099 93D3 32 67 82 ld (blockcnt),a ;
0100 93D6 CD 9D 94 call scroll ;
0101 93D9 CD B1 94 call checkcoll ; check collisions
0102 93DC CD 42 95 call putball ; draw ball
0103 93DF CD B6 91 call ionFastCopy ;
0104 93E2 CD 42 95 call putball ; clear ball
0105 93E5 FB ei ;
0106 93E6 3A AE 95 ld a,(speed) ;
0107 93E9 47 ld b,a ;
0108 93EA 76 delay: halt ;
0109 93EB 10 FD djnz delay ;
0110 93ED 3E FF ld a,$FF ;
0111 93EF D3 01 out (1),a ;
0112 93F1 3E FE ld a,$FE ;
0113 93F3 D3 01 out (1),a ;
0114 93F5 DB 01 in a,(1) ;
0115 93F7 CB 4F bit 1,a ; [(left)]
0116 93F9 28 1E jr z,moveleft ;
0117 93FB CB 57 bit 2,a ; [(right)]
0118 93FD 28 26 jr z,moveright ;
0119 93FF CD 18 4A donemv: bcall(_getk) ;
0120 9402 FE 0F cp 15 ; [CLEAR]
0121 9404 CA 0E 95 jp z,exit ;
0122 9407 FE 37 cp 55 ; [MODE]
0123 9409 20 06 jr nz,npause ;
0124 940B 3E 01 ld a,1 ; turn off calc
0125 940D D3 03 out (3),a ;
0126 940F FB ei ;
0127 9410 76 halt ;
0128 9411 3A 67 82 npause: ld a,(blockcnt) ;
0129 9414 47 ld b,a ;
0130 9415 10 BB djnz sloop ;
0131 9417 18 AE jr init ;
0132 9419
0133 9419 moveleft:
0134 9419 3A 65 82 ld a,(ballx) ;
0135 941C D6 02 sub 2 ;
0136 941E 38 DF jr c,donemv ; offscreen
0137 9420 32 6A 82 ld (tmpx),a ;
0138 9423 18 0E jr xcheck ;
0139 9425
0140 9425 moveright:
0141 9425 3A 65 82 ld a,(ballx) ;
0142 9428 C6 02 add a,2 ;
0143 942A FE 5C cp 96-4 ;
0144 942C 30 D1 jr nc,donemv ; offscreen
0145 942E 32 6A 82 ld (tmpx),a ;
0146 9431 C6 05 add a,5 ; check right side
0147 9433 21 66 82 xcheck: ld hl,bally ;
0148 9436 5E ld e,(hl) ;
0149 9437 CD B3 91 call ionGetPixel ;
0150 943A 7E ld a,(hl) ;
0151 943B B7 or a ;
0152 943C 20 C1 jr nz,donemv ; something in way
0153 943E 11 3C 00 ld de,5*12 ;
0154 9441 19 add hl,de ; something in way
0155 9442 7E ld a,(hl) ;
0156 9443 B7 or a ;
0157 9444 20 B9 jr nz,donemv ;
0158 9446 3A 6A 82 ld a,(tmpx) ;
0159 9449 32 65 82 ld (ballx),a ; move ball
0160 944C 18 B1 jr donemv ;
0161 944E
0162 944E
0163 944E randomblocks:
0164 944E 06 0C ld b,12 ; 12 blocks
0165 9450 21 F9 90 ld hl,grbuf+(60*12) ;
0166 9453 C5 rloop1: push bc ;
0167 9454 E5 push hl ;
0168 9455 06 04 ld b,4 ;
0169 9457 CD AA 91 call ionRandom ; one luck on 5 to have a hole
0170 945A E1 pop hl ;
0171 945B B7 or a ;
0172 945C 28 14 jr z,rloop3 ; skip space
0173 945E DD 21 AF 95 ld ix,block ;
0174 9462 11 0C 00 ld de,12 ;
0175 9465 06 04 ld b,4 ; 4 lines
0176 9467 E5 push hl ;
0177 9468 DD 7E 00 rloop2: ld a,(ix) ;
0178 946B 77 ld (hl),a ;
0179 946C DD 23 inc ix ;
0180 946E 19 add hl,de ;
0181 946F 10 F7 djnz rloop2 ;
0182 9471 E1 pop hl ;
0183 9472 23 rloop3: inc hl ;
0184 9473 C1 pop bc ;
0185 9474 10 DD djnz rloop1 ;
0186 9476 21 F9 90 ld hl,grbuf+(60*12) ;
0187 9479 06 0C ld b,12 ;
0188 947B AF xor a ;
0189 947C 4E rloop4: ld c,(hl) ;
0190 947D CB 09 rrc c ;
0191 947F CE 00 adc a,0 ;
0192 9481 10 F9 djnz rloop4 ;
0193 9483 FE 0C cp 12 ; less than 12 bricks
0194 9485 D8 ret c ;
0195 9486 06 0C ld b,12 ;
0196 9488 CD AA 91 call ionRandom ; put random space
0197 948B 21 F9 90 ld hl,grbuf+(60*12) ;
0198 948E 16 00 ld d,0 ;
0199 9490 5F ld e,a ;
0200 9491 19 add hl,de ;
0201 9492 06 04 ld b,4 ;
0202 9494 11 0C 00 ld de,12 ;
0203 9497 36 00 rloop5: ld (hl),0 ;
0204 9499 19 add hl,de ;
0205 949A 10 FB djnz rloop5 ;
0206 949C C9 ret ;
0207 949D
0208 949D
0209 949D 21 35 8E scroll: ld hl,grbuf+12 ;
0210 94A0 11 29 8E ld de,grbuf ;
0211 94A3 01 F4 02 ld bc,756 ;
0212 94A6 ED B0 ldir ;
0213 94A8 62 ld h,d ;
0214 94A9 6B ld l,e ;
0215 94AA 1C inc e ;
0216 94AB 70 ld (hl),b ;
0217 94AC 0E 0B ld c,11 ;
0218 94AE ED B0 ldir ;
0219 94B0 C9 ret ;
0220 94B1
0221 94B1
0222 94B1 checkcoll:
0223 94B1 3A 66 82 ld a,(bally) ;
0224 94B4 C6 06 add a,6 ;
0225 94B6 5F ld e,a ;
0226 94B7 3A 65 82 ld a,(ballx) ;
0227 94BA CD B3 91 call ionGetPixel ; check left
0228 94BD 7E ld a,(hl) ;
0229 94BE B7 or a ;
0230 94BF 20 23 jr nz,ndown ;
0231 94C1 3A 66 82 ld a,(bally) ;
0232 94C4 C6 06 add a,6 ;
0233 94C6 5F ld e,a ;
0234 94C7 3A 65 82 ld a,(ballx) ;
0235 94CA C6 05 add a,5 ;
0236 94CC CD B3 91 call ionGetPixel ; check right
0237 94CF 7E ld a,(hl) ;
0238 94D0 B7 or a ;
0239 94D1 20 11 jr nz,ndown ;
0240 94D3 2A 68 82 ld hl,(score) ; inc score
0241 94D6 23 inc hl ;
0242 94D7 22 68 82 ld (score),hl ;
0243 94DA 21 66 82 ld hl,bally ; move the ball down
0244 94DD 34 inc (hl) ;
0245 94DE 7E ld a,(hl) ;
0246 94DF FE 37 cp 60-5 ;
0247 94E1 D8 ret c ;
0248 94E2 35 dec (hl) ;
0249 94E3 C9 ret ;
0250 94E4
0251 94E4 3A 66 82 ndown: ld a,(bally) ;
0252 94E7 C6 05 add a,5 ;
0253 94E9 5F ld e,a ;
0254 94EA 3A 65 82 ld a,(ballx) ;
0255 94ED CD B3 91 call ionGetPixel ; check left
0256 94F0 7E ld a,(hl) ;
0257 94F1 B7 or a ;
0258 94F2 20 11 jr nz,moveup ; move up
0259 94F4 3A 66 82 ld a,(bally) ;
0260 94F7 C6 05 add a,5 ;
0261 94F9 5F ld e,a ;
0262 94FA 3A 65 82 ld a,(ballx) ;
0263 94FD C6 05 add a,5 ;
0264 94FF CD B3 91 call ionGetPixel ; check right
0265 9502 7E ld a,(hl) ;
0266 9503 B7 or a ;
0267 9504 C8 ret z ;
0268 9505
0269 9505 21 66 82 moveup: ld hl,bally ;
0270 9508 35 dec (hl) ;
0271 9509 7E ld a,(hl) ;
0272 950A E6 80 and %10000000 ; y<0
0273 950C C8 ret z ;
0274 950D E1 pop hl ;
0275 950E CD 59 47 exit: bcall(_clrscr) ;
0276 9511 CD 75 47 bcall(_homeup) ;
0277 9514 21 9B 95 ld hl,scorestr ;
0278 9517 CD 0D 47 bcall(_puts) ; write "Score: "
0279 951A 2A 68 82 ld hl,(score) ;
0280 951D CD 09 47 bcall(_disphl) ;
0281 9520 2A 68 82 ld hl,(score) ;
0282 9523 ED 5B AC 95 ld de,(high) ;
0283 9527 CD 04 40 bcall(_cphlde) ;
0284 952A 38 0C jr c,exitl ;
0285 952C 22 AC 95 ld (high),hl ;
0286 952F CD 3D 47 bcall(_newline) ;
0287 9532 21 A2 95 ld hl,highstr ;
0288 9535 CD 0D 47 bcall(_puts) ; write "New High!"
0289 9538 CD 18 4A exitl: bcall(_getk) ;
0290 953B FE 36 cp 54 ;
0291 953D CA 33 93 jp z,start_of_program ;
0292 9540 18 F6 jr exitl ;
0293 9542
0294 9542
0295 9542 putball:
0296 9542 06 06 ld b,6 ;
0297 9544 21 65 82 ld hl,ballx ;
0298 9547 7E ld a,(hl) ;
0299 9548 23 inc hl ;
0300 9549 6E ld l,(hl) ;
0301 954A DD 21 B3 95 ld ix,ball ;
0302 954E C3 AD 91 jp ionPutSprite ;
0303 9551
0304 9551
0305 9551 46616C6C646Ftitlestr: .db "Falldown",0
0305 9557 776E00
0306 955A 42792041452Cauthorstr: .db "By AE, FD, and IG",0
0306 9560 2046442C20616E6420494700
0307 956C 326E64202D20startstr: .db "2nd - Start",0
0307 9572 537461727400
0308 9578 414C50484120playerstr: .db "ALPHA - Speed:",0
0308 957E 2D2053706565643A00
0309 9587 434C45415220exitstr: .db "CLEAR - Exit",0
0309 958D 2D204578697400
0310 9594 486967683A20hscorestr: .db "High: ",0
0310 959A 00
0311 959B 53636F72653Ascorestr: .db "Score:",0
0311 95A1 00
0312 95A2 4E6577204869highstr: .db "New High!",0
0312 95A8 67682100
0313 95AC
0314 95AC 00 00 high: .dw 0
0315 95AE 01 speed: .db 1
0316 95AF
0317 95AF FF block: .db %11111111
0318 95B0 81 .db %10000001
0319 95B1 BF .db %10111111
0320 95B2 FF .db %11111111
0321 95B3 78 ball: .db %01111000
0322 95B4 B4 .db %10110100
0323 95B5 CC .db %11001100
0324 95B6 CC .db %11001100
0325 95B7 B4 .db %10110100
0326 95B8 78 .db %01111000
0327 95B9
0328 95B9
0329 95B9 .end
tasm: Number of errors = 0