; Dimensions du terrain... ; taille réelle=100x67 ; taille visuelle=96x63 ZoneData: .equ $4000 hzonedata: .equ ZoneData / 256 .db $bb,$6d .org $9d95 xor a di exx push bc push de push hl exx inc a out ($20),a ; z80 à 15Mhz ; réglages LCD... out ($10),a ; bascule en mode 8 bits ld a,6 ; décalera le curseur vers la gauche après chaque écriture out ($10),a add a,a ;ld a,$0c out ($2a),a ; LCD delay au minimum in a,($2e) and %10001111 out ($2e),a ; réduit la RAM Access Delay in a,(6) push af ld a,$82 ; instaure une RAM en $4000 ($82 ok sur ti84+/82A) out (6),a ld hl,$8000 ld de,$86ec ld bc,768 ldir ld de,$9872 ld bc,768 ldir ld hl,ZoneData ld de,ZoneData+1 ld (hl),l ld bc,17785 ; 69*256+122=17786 ldir call GraphScreenVersZoneData ld hl,mytab ; initialise la table de réfèrences ld de,$8700 ld bc,10 ldir ld a,%11111111 ; réglages CLAVIER... out (1),a ; ré-initialise le clavier ld a,$fd ; défini le groupe de out (1),a ; touches (ayant [entrer], [+], [-], [annul]) Boucle_Principale: ld hl,$8117 ; call ConversionDataVersLCDv3 call WorkingBuffDOWN ld hl,$8217 ; call ConversionDataVersLCDv3 call WorkingBuffUP ; b=0 ld c,$20 in a,($01) bit 2,a ; Touche [-] ? (slow) jr nz,noslow out (c),b ; 6mhz noslow: bit 1,a ; Touche [+] ? (fast) jr nz,nofast inc b out (c),b ; 15mhz nofast: bit 6,a ; Touche [annul] ? jr nz,Boucle_Principale ld de,$8000 ld hl,$86ec ld bc,768 ldir ld hl,$9872 ld bc,768 ldir pop af out (6),a exx pop hl pop de pop bc exx xor a out ($20),a ; z80 à 6 Mhz ei ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mytab: .db 0,0,0,1,0,0,0,0,0,0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GraphScreenVersZoneData: ld h,hzonedata+3 ld de,$9340 ;= GraphScreen ld ixl,63 pdt63: ld l,23+95 ld c,12 pdt12: ld a,(de) inc de ld b,8 pdt8: rla jr nc,y_a_rien ld (hl),1 y_a_rien: dec l djnz pdt8 dec c jr nz,pdt12 inc h dec ixl jr nz,pdt63 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WorkingBuffUP: ld h,hzonedata+1 ;ld hl,ZoneData+256 ld d,$87 ld c,67 fois67: ld l,20 ld b,l ; ld b,20 ld a,(hl) fois20: inc l add a,(hl) inc l add a,(hl) inc h add a,(hl) inc h add a,(hl) dec l add a,(hl) dec l add a,(hl) dec h add a,(hl) inc l or (hl) dec h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) inc h add a,(hl) inc h add a,(hl) dec l add a,(hl) dec l add a,(hl) dec h add a,(hl) inc l or (hl) dec h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) inc h add a,(hl) inc h add a,(hl) dec l add a,(hl) dec l add a,(hl) dec h add a,(hl) inc l or (hl) dec h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) inc h add a,(hl) inc h add a,(hl) dec l add a,(hl) dec l add a,(hl) dec h add a,(hl) inc l or (hl) dec h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) inc h add a,(hl) inc h add a,(hl) dec l add a,(hl) dec l add a,(hl) dec h add a,(hl) inc l or (hl) dec h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e djnz fois20 inc h dec c jr nz,fois67 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WorkingBuffDOWN: ld h,hzonedata+$44 ;ld hl,ZoneData+68*256 ld d,$87 ld c,67 f0is67: ld l,20 ld b,l ; ld b,20 ld a,(hl) f0is20: inc l add a,(hl) inc l add a,(hl) dec h add a,(hl) dec h add a,(hl) dec l add a,(hl) dec l add a,(hl) inc h add a,(hl) inc l or (hl) inc h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) dec h add a,(hl) dec h add a,(hl) dec l add a,(hl) dec l add a,(hl) inc h add a,(hl) inc l or (hl) inc h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) dec h add a,(hl) dec h add a,(hl) dec l add a,(hl) dec l add a,(hl) inc h add a,(hl) inc l or (hl) inc h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) dec h add a,(hl) dec h add a,(hl) dec l add a,(hl) dec l add a,(hl) inc h add a,(hl) inc l or (hl) inc h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e inc l add a,(hl) inc l add a,(hl) dec h add a,(hl) dec h add a,(hl) dec l add a,(hl) dec l add a,(hl) inc h add a,(hl) inc l or (hl) inc h ld e,a ld a,(de) ld e,a ld a,(hl) ld (hl),e djnz f0is20 dec h dec c jr nz,f0is67 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ConversionDataVersLCDv3: ld a,$2b ; colonne tout à droite 12 (donc $2b) out ($10),a ld bc,$be10 ; b=$be (rangée=63ème ligne) ld (savesp+1),sp SoixanteTrois: ld sp,hl out (c),b exx ; à compresser dans 12 octets (avec 8 octets→8 bits) pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a pop hl \ pop de \ pop bc \ pop af adc a,a \ add a,a \ or b \ add a,a \ or c \ add a,a \ or d \ add a,a \ or e \ add a,a \ or h \ add a,a \ or l \ out ($11),a exx dec h dec b jp m,SoixanteTrois savesp: ld sp,0 ret ; spasm JCONWAY6.asm jconway6.8xp -T