Moi ça ne marche pas non plus avec wabbitemu (même en faisant File > New)
Enfin tant mieux, j'ai hâte de voir ton jeu
#ifdef TI83 #define bcall call #define bcallz call z, #define bcallnz call nz, #define bcallc call c, #define bcallnc call nc, #define bjump jp #endif #ifdef TI83P #define bcall rst 28h\ .dw #define bcallz jr nz,$+5\ rst 28h\ .dw #define bcallnz jr z,$+5\ rst 28h\ .dw #define bcallc jr nc,$+5\ rst 28h\ .dw #define bcallnc jr c,$+5\ rst 28h\ .dw #define bjump call 50h\ .dw #endif
Tu m'as dit qu'il y a plein de routines pratiques grâce à ion... où puis je en trouver une description?
;=======================================; ; Rectangle Filling Routine Version 1.0 ; ; By Jason Kovacs & The TCPA - 10/11/99 ; ;=======================================; ; Input: D = Top Left X Coordinate, E = Top Left Y Coordinate ; H = Bottom Right X Coord, L = Bottom Right Y Coord ; C = Color of Lines (0-White, 1-Black, 2-XORed) ; ; Output: A Rectangle is drawn to the Graph Buffer with its border ; and everything within it Filled in according to the value in ; reg C which specifies the Color. ; ; Registers Affected: AF Destroyed; B=0 ; C, DE, HL Preserved. ; The Index Registers and the Shadow Registers Aren't Used. Rectangle_Filled: ld a,l sub e inc a ld b,a ld a,h sub d inc a push de Rect_Fill_Loop: push af call V_Line pop af inc d dec a jr nz, Rect_Fill_Loop pop de ret ;=======================================; ; Horizontal and Verticle Line Routines ; ; By Jason Kovacs & The TCPA - 10/11/99 ; ;=======================================; ; For H_Line and V_Line: ; ; Input: B = Length of Line (Number of Pixels) ; C = Color of Line (0-White, 1-Black, 2-XORed) ; D = X Coordinate Start of the Line ; E = Y Coordinate Start of the Line ; ; Output: Lines are Drawn to the Graph Buffer, and the Starting ; Byte and Pixel Mask are Automatically determined according ; to the Input of the Coordinates in DE. ; ; Registers Affected: All Registers are Preserved Except AF. V_Line: push de push hl push bc ld a,d call Getpix pop bc push bc ld d,c ld c,a ld a,d ld de,12 or a call z,V_White_Line dec a call z,V_Black_Line dec a call z,V_XORed_Line pop bc pop hl pop de ret V_White_Line: ld a,c cpl ld c,a V_White_Line_2: ld a,(hl) and c ld (hl),a add hl,de djnz V_White_Line_2 xor a ret V_Black_Line: ld a,(hl) or c ld (hl),a add hl,de djnz V_Black_Line xor a ret V_XORed_Line: ld a,(hl) xor c ld (hl),a add hl,de djnz V_XORed_Line ret Getpix: ld d,0 ld h,d ld l,e add hl,de add hl,de add hl,hl add hl,hl ld de,plotsscreen add hl,de Getbit: ld b,0 ld c,a and %00000111 srl c srl c srl c add hl,bc ld b,a inc b ld a,%00000001 GBLoop: rrca djnz GBLoop ret
Je n'arrive pas à enlever le "done" qui s'affiche lorsque que je quitte ion (je pense que c'est parce que le shell remet les flags à leur état initial, mais c un peu embêtant), est ce que c'est possible?
je voudrais afficher une valeur (de a) tout en haut à gauche de l'écran, en petit caractères, mais je ne sais pas comment faire (j'ai pensé à mettre a dans OP1, puis de l'afficher, mais je sais pas faire (peut être qu'il y a une romcall, mais je ne la connait pas)
ld hl,0 ld (pencol),hl bcall _setxxop1 bcall _dispop1a
deeph (./46) :
Pourquoi y'a-t-il un "push hl" sans "pop hl" proche alors que le programme peut quitter entre deux ?
ld hl,EXIT push hl
deeph (./46) :
Sinon ligne 380 tu as utilisé un bcall pour appeler "bell_swapBlock", or c'est un call qu'il faut utiliser.
call bell_sendLargeBlock ret [...] bcall _dispop1a ret
jp bell_sendLargeBlock [...] bjump _dispop1a
ld a,(my_event) bit 0,a call nz,GET_EVENT_SEND ld a,(his_event) bit 0,a call nz,GET_EVENT_RECV GET_EVENT_SAV_HL = $+1 ld hl,0 push hl ret GET_EVENT_SEND: ld hl,obj_x ;On evoie les coordonnées du nv objectif ld bc,2 call bell_sendLargeBlock ret GET_EVENT_RECV: ld hl,obj_x ;On reçoit et on affiche le nouveau objectif ld bc,2 call bell_recvLargeBlock ld a,(obj_x) ld b,a ld a,(obj_y) ld c,a ld d,2 bcall _ipoint ret
ld hl,obj_x ld bc,2 ld a,(my_event) bit 0,a call nz,bell_sendLargeBlock ld a,(his_event) bit 0,a call nz,GET_EVENT_RECV GET_EVENT_SAV_HL = $+1 ld hl,0 push hl ret GET_EVENT_RECV: call bell_recvLargeBlock ld hl,(obj_x) ld b,h ld c,l ld d,2 bjump _ipoint
GET_EVENT: pop hl ;On échange les évènements ld (GET_EVENT_SAV_HL),hl ld hl,$0103 ld (pencol),hl ld hl,my_x ld de,his_x ld b,8 call bell_swapBlock ret nz ld a,(my_event) ;On teste les événements and %1100 ld b,a ld a,(his_event) or b bit 3,a ret nz bit 1,a ret nz bit 2,a ld hl,S_PAUSE bcallnz _vputs bcallnz _getkey call nz,bell_sync ret nz ld a,(his_event) bit 0,a call nz,GET_EVENT_AFF GET_EVENT_SAV_HL = $+1 ld hl,0 push hl ret GET_EVENT_AFF: ;On affiche le nouveau objectif ld de,obj_x ld hl,his_obj_x ld bc,2 ldir ld hl,(obj_x) ld b,h ld c,l ld d,2 bjump _ipoint
my_x = savesscreen my_y = savesscreen+1 my_last_x = savesscreen+2 my_last_y = savesscreen+3 my_score = savesscreen+4 my_event = savesscreen+5 obj_x = savesscreen+6 obj_y = savesscreen+7 his_x = savesscreen+8 his_y = savesscreen+9 his_last_x = savesscreen+10 his_last_y = savesscreen+11 his_score = savesscreen+12 his_event = savesscreen+13 his_obj_x = savesscreen+14 his_obj_y = savesscreen+15